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

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 (40) hide show
  1. package/API.md +0 -194
  2. package/dist/cjs/index.cjs +258 -1866
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/index.d.ts +2 -136
  5. package/dist/index.js +261 -1864
  6. package/dist/index.js.map +1 -1
  7. package/package.json +8 -18
  8. package/src/components/CreditLine/paymentV2/1-ChooseAmount.tsx +0 -1
  9. package/src/components/InputAmountModal.tsx +2 -13
  10. package/src/components/Lend/supplyV2/6-Success.tsx +3 -3
  11. package/src/components/WidgetWrapper.tsx +4 -6
  12. package/src/index.tsx +0 -139
  13. package/src/store/widgets.reducers.ts +0 -5
  14. package/src/store/widgets.store.ts +0 -1
  15. package/src/components/CreditLine/solanaBorrow/1-ChooseAmount.tsx +0 -67
  16. package/src/components/CreditLine/solanaBorrow/2-Transfer.tsx +0 -159
  17. package/src/components/CreditLine/solanaBorrow/3-Done.tsx +0 -38
  18. package/src/components/CreditLine/solanaBorrow/index.tsx +0 -90
  19. package/src/components/CreditLine/solanaPayment/1-ChooseAmount.tsx +0 -75
  20. package/src/components/CreditLine/solanaPayment/2-Transfer.tsx +0 -92
  21. package/src/components/CreditLine/solanaPayment/3-Done.tsx +0 -59
  22. package/src/components/CreditLine/solanaPayment/index.tsx +0 -83
  23. package/src/components/Lend/solanaAddRedemption/1-ChooseTranche.tsx +0 -114
  24. package/src/components/Lend/solanaAddRedemption/2-ChooseAmount.tsx +0 -183
  25. package/src/components/Lend/solanaAddRedemption/3-Transfer.tsx +0 -102
  26. package/src/components/Lend/solanaAddRedemption/4-Done.tsx +0 -29
  27. package/src/components/Lend/solanaAddRedemption/index.tsx +0 -155
  28. package/src/components/Lend/solanaCancelRedemption/1-ChooseTranche.tsx +0 -114
  29. package/src/components/Lend/solanaCancelRedemption/2-Transfer.tsx +0 -99
  30. package/src/components/Lend/solanaCancelRedemption/3-Done.tsx +0 -55
  31. package/src/components/Lend/solanaCancelRedemption/index.tsx +0 -162
  32. package/src/components/Lend/solanaSupply/1-Evaluation.tsx +0 -106
  33. package/src/components/Lend/solanaSupply/2-ChooseTranche.tsx +0 -116
  34. package/src/components/Lend/solanaSupply/3-ChooseAmount.tsx +0 -131
  35. package/src/components/Lend/solanaSupply/4-Transfer.tsx +0 -137
  36. package/src/components/Lend/solanaSupply/5-Success.tsx +0 -52
  37. package/src/components/Lend/solanaSupply/index.tsx +0 -155
  38. package/src/components/SolanaTxDoneModal.tsx +0 -119
  39. package/src/components/SolanaTxSendModal.tsx +0 -61
  40. package/src/components/SolanaViewOnExplorer.tsx +0 -29
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, useLenderAccounts, useHumaProgram, useTokenAccount, useTrancheMintAccounts, useTrancheTokenAccounts, useBorrowerAccounts, 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, usePoolUnderlyingTokenBalanceV2, useLenderApprovedV2, useTrancheVaultAssetsV2, useLastDepositTime, usePoolBalance, useReceivableInfoV2, useReceivableContractV2, useERC2612Permit, useMultiSendContract, useFactoring, 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, SolanaTokenUtils, getSolanaExplorerUrl, getTokenAccounts, getSentinelAddress, getCreditAccounts, 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, formatAmount, getTrancheVaultContractV2, getTrancheRedemptionStatusV2, getPoolContractV2, CURRENCY_CODE, SuperfluidPoolProcessor_ABI, PoolMap, 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,10 +26,6 @@ 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 { useWallet, useConnection } from '@solana/wallet-adapter-react';
30
- import { BN } from '@coral-xyz/anchor';
31
- import { TOKEN_2022_PROGRAM_ID, getAccount, TokenAccountNotFoundError, TokenInvalidAccountOwnerError, createAssociatedTokenAccountInstruction, ASSOCIATED_TOKEN_PROGRAM_ID, createApproveCheckedInstruction } from '@solana/spl-token';
32
- import { Transaction, PublicKey } from '@solana/web3.js';
33
29
  import { arrayify } from '@ethersproject/bytes';
34
30
 
35
31
  function _taggedTemplateLiteral(strings, raw) {
@@ -93,7 +89,6 @@ const widgetSlice = createSlice({
93
89
  state.withdrawShares = undefined;
94
90
  state.redeemAmount = undefined;
95
91
  state.redeemShares = undefined;
96
- state.solanaSignature = undefined;
97
92
  },
98
93
  setStep: (state, _ref) => {
99
94
  let {
@@ -184,16 +179,10 @@ const widgetSlice = createSlice({
184
179
  } = _ref12;
185
180
  state.multisend = payload;
186
181
  },
187
- setSolanaSignature: (state, _ref13) => {
182
+ setError: (state, _ref13) => {
188
183
  let {
189
184
  payload
190
185
  } = _ref13;
191
- state.solanaSignature = payload;
192
- },
193
- setError: (state, _ref14) => {
194
- let {
195
- payload
196
- } = _ref14;
197
186
  state.errorMessage = payload.errorMessage;
198
187
  state.errorReason = payload.errorReason;
199
188
  state.step = WIDGET_STEP.Error;
@@ -214,8 +203,7 @@ const {
214
203
  setWithdrawAmount,
215
204
  setWithdrawShares,
216
205
  setRedeemAmount,
217
- setRedeemShares,
218
- setSolanaSignature
206
+ setRedeemShares
219
207
  } = widgetSlice.actions;
220
208
  var widgetsReducers = widgetSlice.reducer;
221
209
 
@@ -225,7 +213,7 @@ var SorryImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAFTCAYAAAC52Y
225
213
 
226
214
  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=";
227
215
 
228
- var _templateObject$q, _templateObject2$p, _templateObject3$i, _templateObject4$b, _templateObject5$8, _templateObject6$7, _templateObject7$5, _templateObject8$3;
216
+ var _templateObject$l, _templateObject2$k, _templateObject3$e, _templateObject4$a, _templateObject5$7, _templateObject6$6, _templateObject7$5, _templateObject8$3;
229
217
  function ErrorModal(_ref) {
230
218
  let {
231
219
  title,
@@ -242,12 +230,12 @@ function ErrorModal(_ref) {
242
230
  errorReason = 'Oops! Something went wrong';
243
231
  }
244
232
  const styles = {
245
- wrapper: css(_templateObject$q || (_templateObject$q = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
246
- header: css(_templateObject2$p || (_templateObject2$p = _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)),
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)),
251
239
  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)),
252
240
  okButton: css(_templateObject8$3 || (_templateObject8$3 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
253
241
  };
@@ -1620,7 +1608,7 @@ function HumaLoading(_ref2) {
1620
1608
  });
1621
1609
  }
1622
1610
 
1623
- var _templateObject$p, _templateObject2$o, _templateObject3$h, _templateObject4$a;
1611
+ var _templateObject$k, _templateObject2$j, _templateObject3$d, _templateObject4$9;
1624
1612
  function WrapperModal(_ref) {
1625
1613
  let {
1626
1614
  title,
@@ -1629,10 +1617,10 @@ function WrapperModal(_ref) {
1629
1617
  } = _ref;
1630
1618
  const theme = useTheme();
1631
1619
  const styles = {
1632
- wrapper: css(_templateObject$p || (_templateObject$p = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
1633
- header: css(_templateObject2$o || (_templateObject2$o = _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 "])))
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 "])))
1636
1624
  };
1637
1625
  return jsxs(Box, {
1638
1626
  css: styles.wrapper,
@@ -1647,7 +1635,7 @@ function WrapperModal(_ref) {
1647
1635
  });
1648
1636
  }
1649
1637
 
1650
- var _templateObject$o, _templateObject2$n;
1638
+ var _templateObject$j, _templateObject2$i;
1651
1639
  function LoadingModal(_ref) {
1652
1640
  let {
1653
1641
  title,
@@ -1657,8 +1645,8 @@ function LoadingModal(_ref) {
1657
1645
  } = _ref;
1658
1646
  const theme = useTheme();
1659
1647
  const styles = {
1660
- loader: css(_templateObject$o || (_templateObject$o = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n "])), theme.cssMixins.rowHCentered),
1661
- bottom: css(_templateObject2$n || (_templateObject2$n = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
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 "])))
1662
1650
  };
1663
1651
  return jsxs(WrapperModal, {
1664
1652
  title: title,
@@ -1685,8 +1673,7 @@ function WidgetWrapper(_ref) {
1685
1673
  const theme = useTheme();
1686
1674
  const dispatch = useAppDispatch();
1687
1675
  const {
1688
- step,
1689
- solanaSignature
1676
+ step
1690
1677
  } = useAppSelector(selectWidgetState);
1691
1678
  const [{
1692
1679
  state,
@@ -1702,14 +1689,12 @@ function WidgetWrapper(_ref) {
1702
1689
  }
1703
1690
  }, [dispatch, failReason, state]);
1704
1691
  useEffect(() => {
1705
- if (step === WIDGET_STEP.Done && (txReceipt || solanaSignature)) {
1706
- if (handleSuccess && txReceipt) {
1692
+ if (step === WIDGET_STEP.Done && txReceipt) {
1693
+ if (handleSuccess) {
1707
1694
  handleSuccess(txReceipt.blockNumber);
1708
- } else if (handleSuccess && solanaSignature) {
1709
- handleSuccess(0); // solana tx doesn't have block number
1710
1695
  }
1711
1696
  }
1712
- }, [handleSuccess, solanaSignature, step, txReceipt]);
1697
+ }, [handleSuccess, step, txReceipt]);
1713
1698
  const handleCloseModal = useCallback(() => {
1714
1699
  reset();
1715
1700
  dispatch(resetState());
@@ -1736,7 +1721,7 @@ function WidgetWrapper(_ref) {
1736
1721
  });
1737
1722
  }
1738
1723
 
1739
- var _templateObject$n;
1724
+ var _templateObject$i;
1740
1725
  function BottomButton(_ref) {
1741
1726
  let {
1742
1727
  variant,
@@ -1744,7 +1729,7 @@ function BottomButton(_ref) {
1744
1729
  onClick,
1745
1730
  children
1746
1731
  } = _ref;
1747
- const styles = css(_templateObject$n || (_templateObject$n = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])));
1732
+ const styles = css(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])));
1748
1733
  return jsx(Box, {
1749
1734
  css: styles,
1750
1735
  children: jsx(Button, {
@@ -1777,7 +1762,7 @@ function ViewOnExplorer(_ref) {
1777
1762
  });
1778
1763
  }
1779
1764
 
1780
- var _templateObject$m, _templateObject2$m;
1765
+ var _templateObject$h, _templateObject2$h;
1781
1766
  function ApproveAllowanceModal(_ref) {
1782
1767
  let {
1783
1768
  poolInfo,
@@ -1815,8 +1800,8 @@ function ApproveAllowanceModal(_ref) {
1815
1800
  }
1816
1801
  }, [handleSuccess, reset, resetAfterSuccess, state, symbol]);
1817
1802
  const styles = {
1818
- iconWrapper: css(_templateObject$m || (_templateObject$m = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
1819
- description: css(_templateObject2$m || (_templateObject2$m = _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))
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))
1820
1805
  };
1821
1806
  const sendIncreaseAllowance = useCallback(async () => {
1822
1807
  const allowanceSpender = spender !== null && spender !== void 0 ? spender : poolInfo.pool;
@@ -1886,7 +1871,7 @@ function ApproveAllowance$c(_ref) {
1886
1871
  });
1887
1872
  }
1888
1873
 
1889
- var _templateObject$l, _templateObject2$l, _templateObject3$g, _templateObject4$9, _templateObject5$7, _templateObject6$6;
1874
+ var _templateObject$g, _templateObject2$g, _templateObject3$c, _templateObject4$8, _templateObject5$6, _templateObject6$5;
1890
1875
  function TxDoneModal(_ref) {
1891
1876
  let {
1892
1877
  content,
@@ -1898,12 +1883,12 @@ function TxDoneModal(_ref) {
1898
1883
  const dispatch = useAppDispatch();
1899
1884
  const reset = useResetAtom(txAtom);
1900
1885
  const styles = {
1901
- wrapper: css(_templateObject$l || (_templateObject$l = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
1902
- header: css(_templateObject2$l || (_templateObject2$l = _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 "])))
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 "])))
1907
1892
  };
1908
1893
  const handleCloseModal = useCallback(() => {
1909
1894
  reset();
@@ -1945,7 +1930,7 @@ function TxDoneModal(_ref) {
1945
1930
  });
1946
1931
  }
1947
1932
 
1948
- function Success$f(_ref) {
1933
+ function Success$e(_ref) {
1949
1934
  let {
1950
1935
  poolInfo,
1951
1936
  handleAction
@@ -2013,7 +1998,7 @@ function CreditLineApprove(_ref) {
2013
1998
  children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$c, {
2014
1999
  poolInfo: poolInfo,
2015
2000
  amount: amount
2016
- }), step === WIDGET_STEP.Done && jsx(Success$f, {
2001
+ }), step === WIDGET_STEP.Done && jsx(Success$e, {
2017
2002
  poolInfo: poolInfo,
2018
2003
  handleAction: handleClose
2019
2004
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -2024,7 +2009,7 @@ function CreditLineApprove(_ref) {
2024
2009
  });
2025
2010
  }
2026
2011
 
2027
- var _templateObject$k, _templateObject2$k;
2012
+ var _templateObject$f, _templateObject2$f;
2028
2013
  function ApproveAllowanceModalV2(_ref) {
2029
2014
  let {
2030
2015
  poolInfo,
@@ -2059,8 +2044,8 @@ function ApproveAllowanceModalV2(_ref) {
2059
2044
  }
2060
2045
  }, [handleSuccess, reset, resetAfterSuccess, state]);
2061
2046
  const styles = {
2062
- iconWrapper: css(_templateObject$k || (_templateObject$k = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 220px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(6)),
2063
- description: css(_templateObject2$k || (_templateObject2$k = _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))
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))
2064
2049
  };
2065
2050
  const sendIncreaseAllowance = useCallback(async () => {
2066
2051
  const allowanceSpender = spender !== null && spender !== void 0 ? spender : poolInfo.pool;
@@ -2127,7 +2112,7 @@ function ApproveAllowance$b(_ref) {
2127
2112
  });
2128
2113
  }
2129
2114
 
2130
- function Success$e(_ref) {
2115
+ function Success$d(_ref) {
2131
2116
  let {
2132
2117
  handleAction
2133
2118
  } = _ref;
@@ -2182,7 +2167,7 @@ function AutoPaybackV2(_ref) {
2182
2167
  children: [step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$b, {
2183
2168
  poolInfo: poolInfo,
2184
2169
  poolUnderlyingToken: poolUnderlyingToken
2185
- }), step === WIDGET_STEP.Done && jsx(Success$e, {
2170
+ }), step === WIDGET_STEP.Done && jsx(Success$d, {
2186
2171
  handleAction: handleClose
2187
2172
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
2188
2173
  title: "Auto Payback",
@@ -2237,17 +2222,17 @@ const useEA = () => {
2237
2222
 
2238
2223
  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==";
2239
2224
 
2240
- var _templateObject$j, _templateObject2$j, _templateObject3$f, _templateObject4$8;
2225
+ var _templateObject$e, _templateObject2$e, _templateObject3$b, _templateObject4$7;
2241
2226
  function SignIn(_ref) {
2242
2227
  let {
2243
2228
  description
2244
2229
  } = _ref;
2245
2230
  const theme = useTheme();
2246
2231
  const styles = {
2247
- wrapper: css(_templateObject$j || (_templateObject$j = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
2248
- header: css(_templateObject2$j || (_templateObject2$j = _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))
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))
2251
2236
  };
2252
2237
  return jsxs(Box, {
2253
2238
  css: styles.wrapper,
@@ -2268,8 +2253,8 @@ function SignIn(_ref) {
2268
2253
  });
2269
2254
  }
2270
2255
 
2271
- var _templateObject$i, _templateObject2$i, _templateObject3$e, _templateObject4$7, _templateObject5$6, _templateObject6$5, _templateObject7$4;
2272
- function Evaluation$5(_ref) {
2256
+ var _templateObject$d, _templateObject2$d, _templateObject3$a, _templateObject4$6, _templateObject5$5, _templateObject6$4, _templateObject7$4;
2257
+ function Evaluation$4(_ref) {
2273
2258
  let {
2274
2259
  poolInfo,
2275
2260
  handleApprove
@@ -2300,12 +2285,12 @@ function Evaluation$5(_ref) {
2300
2285
  fetchData();
2301
2286
  }, [account, chainId, checkingEA, handleApprove, poolInfo.assetAddress, poolInfo.pool, isWalletOwnershipVerified]);
2302
2287
  const styles = {
2303
- wrapper: css(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
2304
- header: css(_templateObject2$i || (_templateObject2$i = _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)),
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)),
2309
2294
  bottom: css(_templateObject7$4 || (_templateObject7$4 = _taggedTemplateLiteral(["\n & .MuiButtonBase-root {\n width: 100%;\n position: absolute;\n bottom: 0;\n }\n "])))
2310
2295
  };
2311
2296
  const goToNextStep = () => {
@@ -2369,7 +2354,7 @@ function Evaluation$5(_ref) {
2369
2354
  });
2370
2355
  }
2371
2356
 
2372
- var _templateObject$h, _templateObject2$h, _templateObject3$d, _templateObject4$6, _templateObject5$5, _templateObject6$4, _templateObject7$3, _templateObject8$2, _templateObject9$1, _templateObject10$1, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
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;
2373
2358
  function ChooseAmountModal(_ref) {
2374
2359
  let {
2375
2360
  title,
@@ -2396,12 +2381,12 @@ function ChooseAmountModal(_ref) {
2396
2381
  } = useMQ();
2397
2382
  const [inputTouched, setInputTouched] = useState(false);
2398
2383
  const styles = {
2399
- subTitle: css(_templateObject$h || (_templateObject$h = _taggedTemplateLiteral(["\n font-weight: 400;\n "]))),
2400
- description2: css(_templateObject2$h || (_templateObject2$h = _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)),
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)),
2405
2390
  inputAmount: css(_templateObject7$3 || (_templateObject7$3 = _taggedTemplateLiteral(["\n ", ";\n "])), theme.cssMixins.rowSpaceBetweened),
2406
2391
  inputField: css(_templateObject8$2 || (_templateObject8$2 = _taggedTemplateLiteral(["\n width: 100%;\n "]))),
2407
2392
  maxButton: css(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteral(["\n width: 80px;\n "]))),
@@ -2552,7 +2537,7 @@ function ChooseAmountModal(_ref) {
2552
2537
  });
2553
2538
  }
2554
2539
 
2555
- function ChooseAmount$g(_ref) {
2540
+ function ChooseAmount$c(_ref) {
2556
2541
  let {
2557
2542
  poolInfo,
2558
2543
  accountStats
@@ -2671,7 +2656,7 @@ function TxSendModal(_ref) {
2671
2656
  });
2672
2657
  }
2673
2658
 
2674
- function Transfer$k(_ref) {
2659
+ function Transfer$f(_ref) {
2675
2660
  let {
2676
2661
  poolInfo
2677
2662
  } = _ref;
@@ -2694,7 +2679,7 @@ function Transfer$k(_ref) {
2694
2679
  });
2695
2680
  }
2696
2681
 
2697
- function Success$d(_ref) {
2682
+ function Success$c(_ref) {
2698
2683
  let {
2699
2684
  poolInfo,
2700
2685
  creditRecord,
@@ -2719,7 +2704,7 @@ function Success$d(_ref) {
2719
2704
  });
2720
2705
  }
2721
2706
 
2722
- var _templateObject$g, _templateObject2$g, _templateObject3$c, _templateObject4$5, _templateObject5$4;
2707
+ var _templateObject$b, _templateObject2$b, _templateObject3$8, _templateObject4$4, _templateObject5$3;
2723
2708
  const validateDefaultTargetGroup = async frontendClient => {
2724
2709
  var _await$frontendClient;
2725
2710
  // NOTE: this extra request is necessary as the targetGroupId state in NotifiTargetContext will not be updated constantly right after login
@@ -2835,11 +2820,11 @@ function NotifiSubscriptionModal(_ref) {
2835
2820
  handleSuccess();
2836
2821
  }, [dispatch, handleSuccess, reset]);
2837
2822
  const styles = {
2838
- disclaimer: css(_templateObject$g || (_templateObject$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(6)),
2839
- inputField: css(_templateObject2$g || (_templateObject2$g = _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))
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))
2843
2828
  };
2844
2829
  if (isLoading) {
2845
2830
  return jsx(LoadingModal, {
@@ -3016,17 +3001,17 @@ function CreditLineBorrow(_ref) {
3016
3001
  loadingTitle: "Borrow",
3017
3002
  handleClose: handleClose,
3018
3003
  handleSuccess: handleSuccess,
3019
- children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$5, {
3004
+ children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$4, {
3020
3005
  poolInfo: poolInfo,
3021
3006
  handleApprove: approveCallback
3022
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$g, {
3007
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$c, {
3023
3008
  poolInfo: poolInfo,
3024
3009
  accountStats: accountStats
3025
3010
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$a, {
3026
3011
  poolInfo: poolInfo
3027
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$k, {
3012
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$f, {
3028
3013
  poolInfo: poolInfo
3029
- }), step === WIDGET_STEP.Done && jsx(Success$d, {
3014
+ }), step === WIDGET_STEP.Done && jsx(Success$c, {
3030
3015
  poolInfo: poolInfo,
3031
3016
  handleAction: setupNotificationsOrClose,
3032
3017
  creditRecord: creditRecord,
@@ -3041,7 +3026,7 @@ function CreditLineBorrow(_ref) {
3041
3026
  });
3042
3027
  }
3043
3028
 
3044
- var _templateObject$f, _templateObject2$f, _templateObject3$b, _templateObject4$4, _templateObject5$3, _templateObject6$3, _templateObject7$2, _templateObject8$1;
3029
+ var _templateObject$a, _templateObject2$a, _templateObject3$7, _templateObject4$3, _templateObject5$2, _templateObject6$2, _templateObject7$2, _templateObject8$1;
3045
3030
  function InputAmountModal(_ref) {
3046
3031
  let {
3047
3032
  title,
@@ -3050,7 +3035,6 @@ function InputAmountModal(_ref) {
3050
3035
  tokenSymbol,
3051
3036
  suffix: defaultSuffix,
3052
3037
  currentAmount,
3053
- minimumAmount,
3054
3038
  maxAmount,
3055
3039
  maxAmountText = 'MAX',
3056
3040
  maxAmountTitle,
@@ -3062,12 +3046,12 @@ function InputAmountModal(_ref) {
3062
3046
  const [inputTouched, setInputTouched] = useState(false);
3063
3047
  const suffix = " ".concat(defaultSuffix !== null && defaultSuffix !== void 0 ? defaultSuffix : tokenSymbol);
3064
3048
  const styles = {
3065
- inputAmountWrapper: css(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral(["\n margin-bottom: ", ";\n margin-top: ", ";\n "])), theme.spacing(1), theme.spacing(16)),
3066
- inputAmount: css(_templateObject2$f || (_templateObject2$f = _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 "]))),
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 "]))),
3071
3055
  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),
3072
3056
  subInfo: css(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteral(["\n position: absolute;\n bottom: ", ";\n "])), theme.spacing(6))
3073
3057
  };
@@ -3085,9 +3069,6 @@ function InputAmountModal(_ref) {
3085
3069
  if (!isEmpty(maxAmount) && Number(currentAmount) > Number(maxAmount)) {
3086
3070
  return true;
3087
3071
  }
3088
- if (!isEmpty(minimumAmount) && Number(currentAmount) < minimumAmount) {
3089
- return true;
3090
- }
3091
3072
  return false;
3092
3073
  };
3093
3074
  const getEndAdornment = () => jsxs(Box, {
@@ -3129,11 +3110,6 @@ function InputAmountModal(_ref) {
3129
3110
  css: styles.info,
3130
3111
  children: info
3131
3112
  }, info))
3132
- }), !!minimumAmount && minimumAmount > 0 && jsx(Box, {
3133
- children: jsxs(Typography, {
3134
- css: styles.info,
3135
- children: ["Minimum deposit: ", minimumAmount, " ", tokenSymbol]
3136
- }, 'minDeposit')
3137
3113
  }), jsx(BottomButton, {
3138
3114
  variant: "contained",
3139
3115
  onClick: handleAction,
@@ -3143,7 +3119,7 @@ function InputAmountModal(_ref) {
3143
3119
  });
3144
3120
  }
3145
3121
 
3146
- function ChooseAmount$f(_ref) {
3122
+ function ChooseAmount$b(_ref) {
3147
3123
  let {
3148
3124
  poolInfo,
3149
3125
  poolUnderlyingToken,
@@ -3254,7 +3230,7 @@ function TxSendModalV2(_ref) {
3254
3230
  });
3255
3231
  }
3256
3232
 
3257
- function Transfer$j(_ref) {
3233
+ function Transfer$e(_ref) {
3258
3234
  let {
3259
3235
  poolInfo
3260
3236
  } = _ref;
@@ -3288,7 +3264,7 @@ function Transfer$j(_ref) {
3288
3264
  });
3289
3265
  }
3290
3266
 
3291
- function Success$c(_ref) {
3267
+ function Success$b(_ref) {
3292
3268
  let {
3293
3269
  poolUnderlyingToken,
3294
3270
  creditRecord,
@@ -3385,16 +3361,16 @@ function CreditLineBorrowV2(_ref) {
3385
3361
  handleSuccess: handleSuccessCallback,
3386
3362
  children: [!step && jsx(LoadingModal, {
3387
3363
  title: "Borrow"
3388
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$f, {
3364
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$b, {
3389
3365
  poolInfo: poolInfo,
3390
3366
  poolUnderlyingToken: poolUnderlyingToken,
3391
3367
  accountStats: accountStats
3392
3368
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$9, {
3393
3369
  poolInfo: poolInfo,
3394
3370
  poolUnderlyingToken: poolUnderlyingToken
3395
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$j, {
3371
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$e, {
3396
3372
  poolInfo: poolInfo
3397
- }), step === WIDGET_STEP.Done && jsx(Success$c, {
3373
+ }), step === WIDGET_STEP.Done && jsx(Success$b, {
3398
3374
  poolUnderlyingToken: poolUnderlyingToken,
3399
3375
  handleAction: setupNotificationsOrClose,
3400
3376
  creditRecord: accountStats.creditRecord,
@@ -3409,7 +3385,7 @@ function CreditLineBorrowV2(_ref) {
3409
3385
  });
3410
3386
  }
3411
3387
 
3412
- function ChooseAmount$e(_ref) {
3388
+ function ChooseAmount$a(_ref) {
3413
3389
  let {
3414
3390
  payoffAmount,
3415
3391
  totalDueAmount,
@@ -3474,7 +3450,7 @@ function ApproveAllowance$8(_ref) {
3474
3450
  });
3475
3451
  }
3476
3452
 
3477
- function Transfer$i(_ref) {
3453
+ function Transfer$d(_ref) {
3478
3454
  let {
3479
3455
  poolInfo
3480
3456
  } = _ref;
@@ -3500,7 +3476,7 @@ function Transfer$i(_ref) {
3500
3476
  });
3501
3477
  }
3502
3478
 
3503
- function Success$b(_ref) {
3479
+ function Success$a(_ref) {
3504
3480
  let {
3505
3481
  poolInfo,
3506
3482
  handleAction
@@ -3566,15 +3542,15 @@ function CreditLinePayment(_ref) {
3566
3542
  loadingTitle: "Make Payment",
3567
3543
  handleClose: handleClose,
3568
3544
  handleSuccess: handleSuccess,
3569
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$e, {
3545
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$a, {
3570
3546
  poolInfo: poolInfo,
3571
3547
  payoffAmount: payoffAmount,
3572
3548
  totalDueAmount: totalDueAmount
3573
3549
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$8, {
3574
3550
  poolInfo: poolInfo
3575
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$i, {
3551
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$d, {
3576
3552
  poolInfo: poolInfo
3577
- }), step === WIDGET_STEP.Done && jsx(Success$b, {
3553
+ }), step === WIDGET_STEP.Done && jsx(Success$a, {
3578
3554
  poolInfo: poolInfo,
3579
3555
  handleAction: handleClose
3580
3556
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -3585,7 +3561,7 @@ function CreditLinePayment(_ref) {
3585
3561
  });
3586
3562
  }
3587
3563
 
3588
- function ChooseAmount$d(_ref) {
3564
+ function ChooseAmount$9(_ref) {
3589
3565
  let {
3590
3566
  payoffAmount: payoffAmountBN,
3591
3567
  totalDueAmount: totalDueAmountBN,
@@ -3607,8 +3583,6 @@ function ChooseAmount$d(_ref) {
3607
3583
  } = usePoolSafeAllowanceV2(poolInfo.poolName, account, provider);
3608
3584
  const totalDueAmount = Number(ethers.utils.formatUnits(totalDueAmountBN, decimals));
3609
3585
  const payoffAmount = Number(ethers.utils.formatUnits(payoffAmountBN, decimals));
3610
-
3611
- // TODO: Remove redundant useEffect
3612
3586
  useEffect(() => {
3613
3587
  setCurrentAmount(totalDueAmount);
3614
3588
  }, [totalDueAmount]);
@@ -3666,7 +3640,7 @@ function ApproveAllowance$7(_ref) {
3666
3640
  });
3667
3641
  }
3668
3642
 
3669
- function Transfer$h(_ref) {
3643
+ function Transfer$c(_ref) {
3670
3644
  let {
3671
3645
  poolInfo,
3672
3646
  poolUnderlyingToken
@@ -3701,7 +3675,7 @@ function Transfer$h(_ref) {
3701
3675
  });
3702
3676
  }
3703
3677
 
3704
- function Success$a(_ref) {
3678
+ function Success$9(_ref) {
3705
3679
  let {
3706
3680
  poolUnderlyingToken,
3707
3681
  handleAction
@@ -3772,7 +3746,7 @@ function CreditLinePaymentV2(_ref) {
3772
3746
  loadingTitle: "Pay",
3773
3747
  handleClose: handleClose,
3774
3748
  handleSuccess: handleSuccess,
3775
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$d, {
3749
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$9, {
3776
3750
  poolInfo: poolInfo,
3777
3751
  poolUnderlyingToken: poolUnderlyingToken,
3778
3752
  payoffAmount: payoffAmount,
@@ -3780,10 +3754,10 @@ function CreditLinePaymentV2(_ref) {
3780
3754
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$7, {
3781
3755
  poolInfo: poolInfo,
3782
3756
  poolUnderlyingToken: poolUnderlyingToken
3783
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$h, {
3757
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$c, {
3784
3758
  poolInfo: poolInfo,
3785
3759
  poolUnderlyingToken: poolUnderlyingToken
3786
- }), step === WIDGET_STEP.Done && jsx(Success$a, {
3760
+ }), step === WIDGET_STEP.Done && jsx(Success$9, {
3787
3761
  poolUnderlyingToken: poolUnderlyingToken,
3788
3762
  handleAction: handleClose
3789
3763
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -3813,7 +3787,7 @@ function ApproveAllowance$6(_ref) {
3813
3787
  });
3814
3788
  }
3815
3789
 
3816
- function Success$9(_ref) {
3790
+ function Success$8(_ref) {
3817
3791
  let {
3818
3792
  amountToDeposit,
3819
3793
  poolUnderlyingToken,
@@ -3831,7 +3805,7 @@ function Success$9(_ref) {
3831
3805
  });
3832
3806
  }
3833
3807
 
3834
- function Transfer$g(_ref) {
3808
+ function Transfer$b(_ref) {
3835
3809
  let {
3836
3810
  poolInfo,
3837
3811
  amountToDeposit,
@@ -3912,11 +3886,11 @@ function SupplyFirstLossCover(_ref) {
3912
3886
  poolInfo: poolInfo,
3913
3887
  poolUnderlyingToken: poolUnderlyingToken,
3914
3888
  amountToDeposit: minAmountToDeposit
3915
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$g, {
3889
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$b, {
3916
3890
  poolInfo: poolInfo,
3917
3891
  amountToDeposit: minAmountToDeposit,
3918
3892
  title: title
3919
- }), step === WIDGET_STEP.Done && jsx(Success$9, {
3893
+ }), step === WIDGET_STEP.Done && jsx(Success$8, {
3920
3894
  poolUnderlyingToken: poolUnderlyingToken,
3921
3895
  handleAction: handleClose,
3922
3896
  amountToDeposit: minAmountToDeposit
@@ -3928,7 +3902,7 @@ function SupplyFirstLossCover(_ref) {
3928
3902
  });
3929
3903
  }
3930
3904
 
3931
- function Evaluation$4(_ref) {
3905
+ function Evaluation$3(_ref) {
3932
3906
  let {
3933
3907
  poolInfo,
3934
3908
  tokenId
@@ -3965,7 +3939,7 @@ function Evaluation$4(_ref) {
3965
3939
  });
3966
3940
  }
3967
3941
 
3968
- function ChooseAmount$c(_ref) {
3942
+ function ChooseAmount$8(_ref) {
3969
3943
  var _receivable;
3970
3944
  let {
3971
3945
  poolInfo,
@@ -4030,7 +4004,7 @@ function ChooseAmount$c(_ref) {
4030
4004
  });
4031
4005
  }
4032
4006
 
4033
- var _templateObject$e, _templateObject2$e, _templateObject3$a, _templateObject4$3, _templateObject5$2, _templateObject6$2, _templateObject7$1, _templateObject8, _templateObject9, _templateObject10;
4007
+ var _templateObject$9, _templateObject2$9, _templateObject3$6, _templateObject4$2, _templateObject5$1, _templateObject6$1, _templateObject7$1, _templateObject8, _templateObject9, _templateObject10;
4034
4008
  function ConfirmTransferModal(_ref) {
4035
4009
  let {
4036
4010
  title,
@@ -4041,12 +4015,12 @@ function ConfirmTransferModal(_ref) {
4041
4015
  } = _ref;
4042
4016
  const theme = useTheme();
4043
4017
  const styles = {
4044
- wrapper: css(_templateObject$e || (_templateObject$e = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n ", ";\n "])), theme.cssMixins.colStretch),
4045
- header: css(_templateObject2$e || (_templateObject2$e = _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),
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),
4050
4024
  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),
4051
4025
  arrowFirst: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n left: calc(15% + 20px);\n animation-delay: 0.2s;\n "]))),
4052
4026
  okButton: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n width: 100%;\n position: absolute;\n bottom: 0;\n "]))),
@@ -4170,7 +4144,7 @@ function ApproveNFT(_ref) {
4170
4144
  });
4171
4145
  }
4172
4146
 
4173
- function Transfer$f(_ref) {
4147
+ function Transfer$a(_ref) {
4174
4148
  let {
4175
4149
  poolInfo,
4176
4150
  tokenId
@@ -4195,7 +4169,7 @@ function Transfer$f(_ref) {
4195
4169
  });
4196
4170
  }
4197
4171
 
4198
- function Success$8(_ref) {
4172
+ function Success$7(_ref) {
4199
4173
  let {
4200
4174
  handleAction
4201
4175
  } = _ref;
@@ -4243,19 +4217,19 @@ function InvoiceFactoringBorrow(_ref) {
4243
4217
  isOpen: true,
4244
4218
  handleClose: handleClose,
4245
4219
  handleSuccess: handleSuccess,
4246
- children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$4, {
4220
+ children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$3, {
4247
4221
  poolInfo: poolInfo,
4248
4222
  tokenId: tokenId.toString()
4249
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$c, {
4223
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$8, {
4250
4224
  poolInfo: poolInfo,
4251
4225
  accountStats: accountStats
4252
4226
  }), step === WIDGET_STEP.ConfirmTransfer && jsx(ConfirmTransfer$2, {}), step === WIDGET_STEP.ApproveNFT && jsx(ApproveNFT, {
4253
4227
  poolInfo: poolInfo,
4254
4228
  tokenId: tokenId.toString()
4255
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$f, {
4229
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$a, {
4256
4230
  poolInfo: poolInfo,
4257
4231
  tokenId: tokenId.toString()
4258
- }), step === WIDGET_STEP.Done && jsx(Success$8, {
4232
+ }), step === WIDGET_STEP.Done && jsx(Success$7, {
4259
4233
  handleAction: handleClose
4260
4234
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
4261
4235
  title: "Invoice Factoring",
@@ -4265,7 +4239,7 @@ function InvoiceFactoringBorrow(_ref) {
4265
4239
  });
4266
4240
  }
4267
4241
 
4268
- function ChooseAmount$b(_ref) {
4242
+ function ChooseAmount$7(_ref) {
4269
4243
  let {
4270
4244
  creditRecord,
4271
4245
  poolInfo
@@ -4330,7 +4304,7 @@ function ApproveAllowance$5(_ref) {
4330
4304
  });
4331
4305
  }
4332
4306
 
4333
- function Transfer$e(_ref) {
4307
+ function Transfer$9(_ref) {
4334
4308
  let {
4335
4309
  poolInfo
4336
4310
  } = _ref;
@@ -4356,7 +4330,7 @@ function Transfer$e(_ref) {
4356
4330
  });
4357
4331
  }
4358
4332
 
4359
- function Success$7(_ref) {
4333
+ function Success$6(_ref) {
4360
4334
  let {
4361
4335
  poolInfo,
4362
4336
  handleAction
@@ -4410,14 +4384,14 @@ function InvoiceFactoringPayment(_ref) {
4410
4384
  loadingTitle: "Make Payment",
4411
4385
  handleClose: handleClose,
4412
4386
  handleSuccess: handleSuccess,
4413
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$b, {
4387
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$7, {
4414
4388
  creditRecord: creditRecord,
4415
4389
  poolInfo: poolInfo
4416
4390
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$5, {
4417
4391
  poolInfo: poolInfo
4418
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$e, {
4392
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$9, {
4419
4393
  poolInfo: poolInfo
4420
- }), step === WIDGET_STEP.Done && jsx(Success$7, {
4394
+ }), step === WIDGET_STEP.Done && jsx(Success$6, {
4421
4395
  poolInfo: poolInfo,
4422
4396
  handleAction: handleClose
4423
4397
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -4428,8 +4402,8 @@ function InvoiceFactoringPayment(_ref) {
4428
4402
  });
4429
4403
  }
4430
4404
 
4431
- var _templateObject$d, _templateObject2$d, _templateObject3$9;
4432
- function ChooseTranche$4(_ref) {
4405
+ var _templateObject$8, _templateObject2$8, _templateObject3$5;
4406
+ function ChooseTranche$1(_ref) {
4433
4407
  let {
4434
4408
  selectedTranche,
4435
4409
  changeTranche
@@ -4437,9 +4411,9 @@ function ChooseTranche$4(_ref) {
4437
4411
  const theme = useTheme();
4438
4412
  const dispatch = useAppDispatch();
4439
4413
  const styles = {
4440
- subTitle: css(_templateObject$d || (_templateObject$d = _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$d || (_templateObject2$d = _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)
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)
4443
4417
  };
4444
4418
  const handleNext = () => {
4445
4419
  dispatch(setStep(WIDGET_STEP.ChooseAmount));
@@ -4484,7 +4458,7 @@ function ChooseTranche$4(_ref) {
4484
4458
  });
4485
4459
  }
4486
4460
 
4487
- function ChooseAmount$a(_ref) {
4461
+ function ChooseAmount$6(_ref) {
4488
4462
  let {
4489
4463
  poolInfo,
4490
4464
  poolUnderlyingToken,
@@ -4550,7 +4524,7 @@ function ChooseAmount$a(_ref) {
4550
4524
  });
4551
4525
  }
4552
4526
 
4553
- function Transfer$d(_ref) {
4527
+ function Transfer$8(_ref) {
4554
4528
  let {
4555
4529
  poolInfo,
4556
4530
  poolUnderlyingToken,
@@ -4583,7 +4557,7 @@ function Transfer$d(_ref) {
4583
4557
  });
4584
4558
  }
4585
4559
 
4586
- function Done$6(_ref) {
4560
+ function Done$2(_ref) {
4587
4561
  let {
4588
4562
  handleAction
4589
4563
  } = _ref;
@@ -4693,18 +4667,18 @@ function AddRedemptionV2(_ref) {
4693
4667
  loadingTitle: title,
4694
4668
  handleClose: handleClose,
4695
4669
  handleSuccess: handleRedeemSuccess,
4696
- children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$4, {
4670
+ children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$1, {
4697
4671
  selectedTranche: trancheInfo === null || trancheInfo === void 0 ? void 0 : trancheInfo.tranche,
4698
4672
  changeTranche: handleChangeTranche
4699
- }), step === WIDGET_STEP.ChooseAmount && trancheInfo && jsx(ChooseAmount$a, {
4673
+ }), step === WIDGET_STEP.ChooseAmount && trancheInfo && jsx(ChooseAmount$6, {
4700
4674
  poolInfo: poolInfo,
4701
4675
  poolUnderlyingToken: poolUnderlyingToken,
4702
4676
  trancheInfo: trancheInfo
4703
- }), step === WIDGET_STEP.Transfer && trancheInfo && jsx(Transfer$d, {
4677
+ }), step === WIDGET_STEP.Transfer && trancheInfo && jsx(Transfer$8, {
4704
4678
  poolInfo: poolInfo,
4705
4679
  poolUnderlyingToken: poolUnderlyingToken,
4706
4680
  trancheInfo: trancheInfo
4707
- }), step === WIDGET_STEP.Done && trancheInfo && jsx(Done$6, {
4681
+ }), step === WIDGET_STEP.Done && trancheInfo && jsx(Done$2, {
4708
4682
  handleAction: handleClose
4709
4683
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
4710
4684
  title: title,
@@ -4715,7 +4689,7 @@ function AddRedemptionV2(_ref) {
4715
4689
  });
4716
4690
  }
4717
4691
 
4718
- function Transfer$c(_ref) {
4692
+ function Transfer$7(_ref) {
4719
4693
  let {
4720
4694
  poolInfo,
4721
4695
  trancheType,
@@ -4741,7 +4715,7 @@ function Transfer$c(_ref) {
4741
4715
  });
4742
4716
  }
4743
4717
 
4744
- function Done$5(_ref) {
4718
+ function Done$1(_ref) {
4745
4719
  let {
4746
4720
  poolUnderlyingToken,
4747
4721
  redemptionInfo,
@@ -4802,11 +4776,11 @@ function CancelRedemptionV2(_ref) {
4802
4776
  loadingTitle: title,
4803
4777
  handleClose: handleClose,
4804
4778
  handleSuccess: handleRedeemSuccess,
4805
- children: [step === WIDGET_STEP.Transfer && jsx(Transfer$c, {
4779
+ children: [step === WIDGET_STEP.Transfer && jsx(Transfer$7, {
4806
4780
  poolInfo: poolInfo,
4807
4781
  trancheType: trancheType,
4808
4782
  redemptionInfo: redemptionInfo
4809
- }), step === WIDGET_STEP.Done && jsx(Done$5, {
4783
+ }), step === WIDGET_STEP.Done && jsx(Done$1, {
4810
4784
  poolUnderlyingToken: poolUnderlyingToken,
4811
4785
  handleAction: handleClose,
4812
4786
  redemptionInfo: redemptionInfo
@@ -4819,7 +4793,7 @@ function CancelRedemptionV2(_ref) {
4819
4793
  });
4820
4794
  }
4821
4795
 
4822
- var _templateObject$c, _templateObject2$c;
4796
+ var _templateObject$7, _templateObject2$7;
4823
4797
  function EvaluationEA(_ref) {
4824
4798
  let {
4825
4799
  poolInfo,
@@ -4833,8 +4807,8 @@ function EvaluationEA(_ref) {
4833
4807
  } = useWeb3React();
4834
4808
  const [loading, setLoading] = useState(false);
4835
4809
  const styles = {
4836
- iconWrapper: css(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
4837
- description: css(_templateObject2$c || (_templateObject2$c = _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)
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)
4838
4812
  };
4839
4813
  const approveLender = async () => {
4840
4814
  if (account) {
@@ -4929,7 +4903,7 @@ function HumaSnackBar(_ref2) {
4929
4903
  });
4930
4904
  }
4931
4905
 
4932
- var _templateObject$b, _templateObject2$b;
4906
+ var _templateObject$6, _templateObject2$6;
4933
4907
  const KYCProvider = 'Securitize';
4934
4908
  // TODO: Add copies for the other pools. Currently only the Jia pool is using the KYC process.
4935
4909
  const JiaPoolCopies = {
@@ -4995,8 +4969,8 @@ function EvaluationKYC(_ref) {
4995
4969
  const docSignatureCompleted = docSignatureStatus === 'completed';
4996
4970
  const [openSnackBar, setOpenSnackBar] = useState(false);
4997
4971
  const styles = {
4998
- iconWrapper: css(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
4999
- 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)
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)
5000
4974
  };
5001
4975
  const {
5002
4976
  envelopeKey,
@@ -5187,7 +5161,7 @@ function EvaluationKYC(_ref) {
5187
5161
  });
5188
5162
  }
5189
5163
 
5190
- function Evaluation$3(_ref) {
5164
+ function Evaluation$2(_ref) {
5191
5165
  var _poolInfo$extra;
5192
5166
  let {
5193
5167
  poolInfo,
@@ -5208,7 +5182,7 @@ function Evaluation$3(_ref) {
5208
5182
  });
5209
5183
  }
5210
5184
 
5211
- function ChooseAmount$9(_ref) {
5185
+ function ChooseAmount$5(_ref) {
5212
5186
  let {
5213
5187
  allowance,
5214
5188
  withdrawlLockoutSeconds,
@@ -5265,7 +5239,7 @@ function ApproveAllowance$4(_ref) {
5265
5239
  });
5266
5240
  }
5267
5241
 
5268
- function Transfer$b(_ref) {
5242
+ function Transfer$6(_ref) {
5269
5243
  let {
5270
5244
  poolInfo
5271
5245
  } = _ref;
@@ -5288,7 +5262,7 @@ function Transfer$b(_ref) {
5288
5262
  });
5289
5263
  }
5290
5264
 
5291
- function Success$6(_ref) {
5265
+ function Success$5(_ref) {
5292
5266
  let {
5293
5267
  poolInfo,
5294
5268
  handleAction,
@@ -5411,20 +5385,20 @@ function LendSupply(_ref) {
5411
5385
  loadingTitle: "Supply ".concat(poolInfo.poolUnderlyingToken.symbol),
5412
5386
  handleClose: handleClose,
5413
5387
  handleSuccess: handleSupplySuccess,
5414
- children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$3, {
5388
+ children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$2, {
5415
5389
  poolInfo: poolInfo,
5416
5390
  handleClose: handleClose,
5417
5391
  handleApproveSuccess: handleApproveSuccess
5418
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$9, {
5392
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$5, {
5419
5393
  poolInfo: poolInfo,
5420
5394
  allowance: allowance,
5421
5395
  underlyingTokenBalance: balanceWithoutDecimals,
5422
5396
  withdrawlLockoutSeconds: withdrawlLockoutSeconds
5423
5397
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$4, {
5424
5398
  poolInfo: poolInfo
5425
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$b, {
5399
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$6, {
5426
5400
  poolInfo: poolInfo
5427
- }), step === WIDGET_STEP.Done && jsx(Success$6, {
5401
+ }), step === WIDGET_STEP.Done && jsx(Success$5, {
5428
5402
  poolInfo: poolInfo,
5429
5403
  handleAction: setupNotificationsOrClose,
5430
5404
  hasNextStep: isFirstTimeNotifiUser
@@ -5439,8 +5413,8 @@ function LendSupply(_ref) {
5439
5413
  });
5440
5414
  }
5441
5415
 
5442
- var _templateObject$a, _templateObject2$a, _templateObject3$8;
5443
- function ChooseTranche$3(_ref) {
5416
+ var _templateObject$5, _templateObject2$5, _templateObject3$4;
5417
+ function ChooseTranche(_ref) {
5444
5418
  let {
5445
5419
  poolUnderlyingToken,
5446
5420
  selectedTranche,
@@ -5449,9 +5423,9 @@ function ChooseTranche$3(_ref) {
5449
5423
  const theme = useTheme();
5450
5424
  const dispatch = useAppDispatch();
5451
5425
  const styles = {
5452
- subTitle: css(_templateObject$a || (_templateObject$a = _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$a || (_templateObject2$a = _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)
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)
5455
5429
  };
5456
5430
  const handleNext = () => {
5457
5431
  dispatch(setStep(WIDGET_STEP.ChooseAmount));
@@ -5501,7 +5475,7 @@ function ChooseTranche$3(_ref) {
5501
5475
  });
5502
5476
  }
5503
5477
 
5504
- var _templateObject$9, _templateObject2$9, _templateObject3$7;
5478
+ var _templateObject$4, _templateObject2$4, _templateObject3$3;
5505
5479
  function PersonaEvaluation(_ref) {
5506
5480
  let {
5507
5481
  poolInfo,
@@ -5767,9 +5741,9 @@ function PersonaEvaluation(_ref) {
5767
5741
  }
5768
5742
  };
5769
5743
  const styles = {
5770
- iconWrapper: css(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
5771
- description: css(_templateObject2$9 || (_templateObject2$9 = _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),
5772
- points: css(_templateObject3$7 || (_templateObject3$7 = _taggedTemplateLiteral(["\n color: ", ";\n font-weight: 700;\n "])), theme.palette.primary.main)
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)
5773
5747
  };
5774
5748
  if (!loadingType) {
5775
5749
  return jsxs(WrapperModal, {
@@ -5801,7 +5775,7 @@ function PersonaEvaluation(_ref) {
5801
5775
  });
5802
5776
  }
5803
5777
 
5804
- var _templateObject$8, _templateObject2$8;
5778
+ var _templateObject$3, _templateObject2$3;
5805
5779
  const LoadingCopiesByType = {
5806
5780
  verificationStatus: {
5807
5781
  description: "Checking your verification status..."
@@ -6006,8 +5980,8 @@ function SecuritizeEvaluation(_ref) {
6006
5980
  onClose: () => setOpenSnackBar(false)
6007
5981
  });
6008
5982
  const styles = {
6009
- iconWrapper: css(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
6010
- description: css(_templateObject2$8 || (_templateObject2$8 = _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)
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)
6011
5985
  };
6012
5986
  if (!loadingType) {
6013
5987
  return jsxs(WrapperModal, {
@@ -6034,7 +6008,7 @@ function SecuritizeEvaluation(_ref) {
6034
6008
  });
6035
6009
  }
6036
6010
 
6037
- function Evaluation$2(_ref) {
6011
+ function Evaluation$1(_ref) {
6038
6012
  var _poolInfo$KYC, _poolInfo$KYC2;
6039
6013
  let {
6040
6014
  poolInfo,
@@ -6063,7 +6037,7 @@ function Evaluation$2(_ref) {
6063
6037
  return null;
6064
6038
  }
6065
6039
 
6066
- function ChooseAmount$8(_ref) {
6040
+ function ChooseAmount$4(_ref) {
6067
6041
  let {
6068
6042
  poolInfo,
6069
6043
  lpConfig,
@@ -6163,7 +6137,7 @@ function ApproveAllowance$3(_ref) {
6163
6137
  });
6164
6138
  }
6165
6139
 
6166
- function Transfer$a(_ref) {
6140
+ function Transfer$5(_ref) {
6167
6141
  let {
6168
6142
  poolInfo,
6169
6143
  trancheType
@@ -6195,7 +6169,7 @@ function Transfer$a(_ref) {
6195
6169
  });
6196
6170
  }
6197
6171
 
6198
- function Success$5(_ref) {
6172
+ function Success$4(_ref) {
6199
6173
  let {
6200
6174
  poolInfo,
6201
6175
  lpConfig,
@@ -6258,9 +6232,9 @@ function Success$5(_ref) {
6258
6232
  }, [campaign, dispatch, handleAction, isFirstTimeNotifiUser, notifiChainSupported]);
6259
6233
  const content = ["You successfully supplied ".concat(formatMoney(supplyAmount), " ").concat(symbol, ".")];
6260
6234
  const getSubContent = () => {
6261
- const lockupEndTime = dayjs().add(lpConfig.withdrawalLockoutPeriodInDays, 'day').date(1);
6262
- const withdrawTime = lockupEndTime.add(1, 'month');
6263
- return ["You can begin submitting redemption requests on ".concat(timeUtil.timestampToLL(lockupEndTime.unix()), ", which can be redeemed starting ").concat(timeUtil.timestampToLL(withdrawTime.unix()), ".")];
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()), ".")];
6264
6238
  };
6265
6239
  const getButtonText = () => {
6266
6240
  if (hasNextStep) {
@@ -6295,7 +6269,7 @@ function Notifications$1(_ref) {
6295
6269
  });
6296
6270
  }
6297
6271
 
6298
- var _templateObject$7, _templateObject2$7, _templateObject3$6, _templateObject4$2, _templateObject5$1, _templateObject6$1, _templateObject7;
6272
+ var _templateObject$2, _templateObject2$2, _templateObject3$2, _templateObject4$1, _templateObject5, _templateObject6, _templateObject7;
6299
6273
  var STATE = /*#__PURE__*/function (STATE) {
6300
6274
  STATE["Loading"] = "Loading";
6301
6275
  STATE["SignIn"] = "SignIn";
@@ -6383,12 +6357,12 @@ function PointsEarned(_ref) {
6383
6357
  handleAction();
6384
6358
  }, [dispatch, handleAction, reset]);
6385
6359
  const styles = {
6386
- wrapper: css(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
6387
- congrats: css(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), theme.spacing(-4, -4.5, 0, -4.5)),
6388
- 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),
6389
- 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)),
6390
- 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)),
6391
- 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)),
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)),
6392
6366
  everyday: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n font-weight: 700;\n "])))
6393
6367
  };
6394
6368
  if (state === STATE.SignIn) {
@@ -6520,18 +6494,18 @@ function LendSupplyV2(_ref) {
6520
6494
  loadingTitle: "Supply ".concat(poolUnderlyingToken.symbol),
6521
6495
  handleClose: handleClose,
6522
6496
  handleSuccess: handleSuccess,
6523
- children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$3, {
6497
+ children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche, {
6524
6498
  poolUnderlyingToken: poolUnderlyingToken,
6525
6499
  selectedTranche: selectedTranche,
6526
6500
  changeTranche: setSelectedTranche
6527
- }), step === WIDGET_STEP.Evaluation && jsx(Evaluation$2, {
6501
+ }), step === WIDGET_STEP.Evaluation && jsx(Evaluation$1, {
6528
6502
  poolInfo: poolInfo,
6529
6503
  handleClose: handleClose,
6530
6504
  isUniTranche: isUniTranche,
6531
6505
  changeTranche: setSelectedTranche,
6532
6506
  pointsTestnetExperience: pointsTestnetExperience,
6533
6507
  campaign: campaign
6534
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$8, {
6508
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$4, {
6535
6509
  poolInfo: poolInfo,
6536
6510
  lpConfig: lpConfig,
6537
6511
  juniorAssets: juniorAssets,
@@ -6540,10 +6514,10 @@ function LendSupplyV2(_ref) {
6540
6514
  isUniTranche: isUniTranche
6541
6515
  }), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance$3, {
6542
6516
  poolInfo: poolInfo
6543
- }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$a, {
6517
+ }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$5, {
6544
6518
  poolInfo: poolInfo,
6545
6519
  trancheType: selectedTranche
6546
- }), step === WIDGET_STEP.Done && jsx(Success$5, {
6520
+ }), step === WIDGET_STEP.Done && jsx(Success$4, {
6547
6521
  poolInfo: poolInfo,
6548
6522
  lpConfig: lpConfig,
6549
6523
  campaign: campaign,
@@ -6608,7 +6582,7 @@ function CheckWithdrawable(_ref) {
6608
6582
  });
6609
6583
  }
6610
6584
 
6611
- function ChooseAmount$7(_ref) {
6585
+ function ChooseAmount$3(_ref) {
6612
6586
  let {
6613
6587
  lenderPosition,
6614
6588
  poolBalance,
@@ -6646,7 +6620,7 @@ function ChooseAmount$7(_ref) {
6646
6620
  });
6647
6621
  }
6648
6622
 
6649
- function Transfer$9(_ref) {
6623
+ function Transfer$4(_ref) {
6650
6624
  let {
6651
6625
  poolInfo
6652
6626
  } = _ref;
@@ -6669,7 +6643,7 @@ function Transfer$9(_ref) {
6669
6643
  });
6670
6644
  }
6671
6645
 
6672
- function Success$4(_ref) {
6646
+ function Success$3(_ref) {
6673
6647
  let {
6674
6648
  poolInfo,
6675
6649
  handleAction
@@ -6759,13 +6733,13 @@ function LendWithdraw(_ref) {
6759
6733
  children: [step === WIDGET_STEP.CheckWithdrawable && jsx(CheckWithdrawable, {
6760
6734
  poolInfo: poolInfo,
6761
6735
  handleClose: handleClose
6762
- }), step === WIDGET_STEP.ChooseAmount && lenderPosition && poolBalance && jsx(ChooseAmount$7, {
6736
+ }), step === WIDGET_STEP.ChooseAmount && lenderPosition && poolBalance && jsx(ChooseAmount$3, {
6763
6737
  poolInfo: poolInfo,
6764
6738
  lenderPosition: lenderPosition,
6765
6739
  poolBalance: poolBalance
6766
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$9, {
6740
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$4, {
6767
6741
  poolInfo: poolInfo
6768
- }), step === WIDGET_STEP.Done && jsx(Success$4, {
6742
+ }), step === WIDGET_STEP.Done && jsx(Success$3, {
6769
6743
  poolInfo: poolInfo,
6770
6744
  handleAction: handleClose
6771
6745
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
@@ -6777,7 +6751,7 @@ function LendWithdraw(_ref) {
6777
6751
  });
6778
6752
  }
6779
6753
 
6780
- var _templateObject$6, _templateObject2$6, _templateObject3$5, _templateObject4$1;
6754
+ var _templateObject$1, _templateObject2$1, _templateObject3$1, _templateObject4;
6781
6755
  function ConfirmTransfer$1(_ref) {
6782
6756
  let {
6783
6757
  poolInfo,
@@ -6819,10 +6793,10 @@ function ConfirmTransfer$1(_ref) {
6819
6793
  dispatch(setStep(WIDGET_STEP.Transfer));
6820
6794
  };
6821
6795
  const styles = {
6822
- itemWrapper: css(_templateObject$6 || (_templateObject$6 = _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),
6823
- item: css(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: ", ";\n "])), theme.spacing(3)),
6824
- itemValue: css(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral(["\n font-size: 20px;\n font-weight: 700;\n "]))),
6825
- divider: css(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral(["\n border-color: ", ";\n margin-bottom: ", ";\n "])), theme.palette.divider, theme.spacing(3))
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))
6826
6800
  };
6827
6801
  return jsxs(WrapperModal, {
6828
6802
  title: "Withdraw ".concat(symbol),
@@ -6866,7 +6840,7 @@ function ConfirmTransfer$1(_ref) {
6866
6840
  });
6867
6841
  }
6868
6842
 
6869
- function Transfer$8(_ref) {
6843
+ function Transfer$3(_ref) {
6870
6844
  let {
6871
6845
  poolInfo,
6872
6846
  tranche,
@@ -6892,7 +6866,7 @@ function Transfer$8(_ref) {
6892
6866
  });
6893
6867
  }
6894
6868
 
6895
- function Done$4(_ref) {
6869
+ function Done(_ref) {
6896
6870
  let {
6897
6871
  poolUnderlyingToken,
6898
6872
  withdrawAmount,
@@ -6992,11 +6966,11 @@ function LendWithdrawV2(_ref) {
6992
6966
  redemptionStatus: redemptionStatus,
6993
6967
  poolUnderlyingToken: poolUnderlyingToken,
6994
6968
  poolIsClosed: poolIsClosed
6995
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$8, {
6969
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer$3, {
6996
6970
  poolInfo: poolInfo,
6997
6971
  tranche: trancheType,
6998
6972
  poolIsClosed: poolIsClosed
6999
- }), step === WIDGET_STEP.Done && jsx(Done$4, {
6973
+ }), step === WIDGET_STEP.Done && jsx(Done, {
7000
6974
  poolUnderlyingToken: poolUnderlyingToken,
7001
6975
  withdrawAmount: redemptionStatus.withdrawableAssets,
7002
6976
  handleAction: handleClose
@@ -7009,7 +6983,7 @@ function LendWithdrawV2(_ref) {
7009
6983
  });
7010
6984
  }
7011
6985
 
7012
- function ChooseAmount$6(_ref) {
6986
+ function ChooseAmount$2(_ref) {
7013
6987
  let {
7014
6988
  poolInfo,
7015
6989
  poolUnderlyingToken,
@@ -7132,7 +7106,7 @@ function ApproveReceivable$1(_ref) {
7132
7106
  });
7133
7107
  }
7134
7108
 
7135
- function Transfer$7(_ref) {
7109
+ function Transfer$2(_ref) {
7136
7110
  let {
7137
7111
  poolInfo,
7138
7112
  tokenId
@@ -7177,7 +7151,7 @@ function Transfer$7(_ref) {
7177
7151
  });
7178
7152
  }
7179
7153
 
7180
- function Success$3(_ref) {
7154
+ function Success$2(_ref) {
7181
7155
  let {
7182
7156
  poolUnderlyingToken,
7183
7157
  creditRecord,
@@ -7273,7 +7247,7 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
7273
7247
  loadingTitle: "Borrow",
7274
7248
  handleClose: handleClose,
7275
7249
  handleSuccess: handleSuccessCallback,
7276
- children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$6, {
7250
+ children: [step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$2, {
7277
7251
  poolInfo: poolInfo,
7278
7252
  poolUnderlyingToken: poolUnderlyingToken,
7279
7253
  accountStats: accountStats,
@@ -7284,10 +7258,10 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
7284
7258
  }), step === WIDGET_STEP.ApproveNFT && tokenId && jsx(ApproveReceivable$1, {
7285
7259
  poolInfo: poolInfo,
7286
7260
  tokenId: tokenId
7287
- }), step === WIDGET_STEP.Transfer && tokenId && jsx(Transfer$7, {
7261
+ }), step === WIDGET_STEP.Transfer && tokenId && jsx(Transfer$2, {
7288
7262
  poolInfo: poolInfo,
7289
7263
  tokenId: tokenId
7290
- }), step === WIDGET_STEP.Done && jsx(Success$3, {
7264
+ }), step === WIDGET_STEP.Done && jsx(Success$2, {
7291
7265
  poolUnderlyingToken: poolUnderlyingToken,
7292
7266
  handleAction: setupNotificationsOrClose,
7293
7267
  creditRecord: accountStats.creditRecord,
@@ -7302,7 +7276,7 @@ function ReceivableBackedCreditLineBorrowV2(_ref) {
7302
7276
  });
7303
7277
  }
7304
7278
 
7305
- var _templateObject$5, _templateObject2$5, _templateObject3$4;
7279
+ var _templateObject, _templateObject2, _templateObject3;
7306
7280
  function ChoosePaymentType(_ref) {
7307
7281
  let {
7308
7282
  paymentType,
@@ -7311,9 +7285,9 @@ function ChoosePaymentType(_ref) {
7311
7285
  const theme = useTheme();
7312
7286
  const dispatch = useAppDispatch();
7313
7287
  const styles = {
7314
- 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)),
7315
- radioGroup: css(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
7316
- 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)
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)
7317
7291
  };
7318
7292
  const handleNext = () => {
7319
7293
  dispatch(setStep(WIDGET_STEP.ChooseAmount));
@@ -7358,7 +7332,7 @@ function ChoosePaymentType(_ref) {
7358
7332
  });
7359
7333
  }
7360
7334
 
7361
- function ChooseAmount$5(_ref) {
7335
+ function ChooseAmount$1(_ref) {
7362
7336
  let {
7363
7337
  payoffAmount: payoffAmountBN,
7364
7338
  poolInfo,
@@ -7540,7 +7514,7 @@ function ApproveReceivable(_ref) {
7540
7514
  });
7541
7515
  }
7542
7516
 
7543
- function Transfer$6(_ref) {
7517
+ function Transfer$1(_ref) {
7544
7518
  let {
7545
7519
  poolInfo,
7546
7520
  poolUnderlyingToken,
@@ -7598,7 +7572,7 @@ function Transfer$6(_ref) {
7598
7572
  });
7599
7573
  }
7600
7574
 
7601
- function Success$2(_ref) {
7575
+ function Success$1(_ref) {
7602
7576
  let {
7603
7577
  poolUnderlyingToken,
7604
7578
  paymentType,
@@ -7691,7 +7665,7 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
7691
7665
  children: [step === WIDGET_STEP.ChoosePaymentType && jsx(ChoosePaymentType, {
7692
7666
  paymentType: paymentType,
7693
7667
  changePaymentType: setPaymentType
7694
- }), step === WIDGET_STEP.ChooseAmount && paymentType && jsx(ChooseAmount$5, {
7668
+ }), step === WIDGET_STEP.ChooseAmount && paymentType && jsx(ChooseAmount$1, {
7695
7669
  poolInfo: poolInfo,
7696
7670
  poolUnderlyingToken: poolUnderlyingToken,
7697
7671
  payoffAmount: payoffAmount,
@@ -7707,14 +7681,14 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
7707
7681
  }), step === WIDGET_STEP.ApproveNFT && borrowTokenId && jsx(ApproveReceivable, {
7708
7682
  poolInfo: poolInfo,
7709
7683
  tokenId: borrowTokenId
7710
- }), step === WIDGET_STEP.Transfer && paymentType && jsx(Transfer$6, {
7684
+ }), step === WIDGET_STEP.Transfer && paymentType && jsx(Transfer$1, {
7711
7685
  poolInfo: poolInfo,
7712
7686
  poolUnderlyingToken: poolUnderlyingToken,
7713
7687
  paymentType: paymentType,
7714
7688
  paymentTokenId: tokenId,
7715
7689
  borrowTokenId: borrowTokenId,
7716
7690
  setSuccessTxReceipt: setSuccessTxReceipt
7717
- }), step === WIDGET_STEP.Done && paymentType && successTxReceipt && jsx(Success$2, {
7691
+ }), step === WIDGET_STEP.Done && paymentType && successTxReceipt && jsx(Success$1, {
7718
7692
  poolUnderlyingToken: poolUnderlyingToken,
7719
7693
  paymentType: paymentType,
7720
7694
  handleAction: handleClose,
@@ -7727,7 +7701,7 @@ function ReceivableBackedCreditLinePaymentV2(_ref) {
7727
7701
  });
7728
7702
  }
7729
7703
 
7730
- function Evaluation$1(_ref) {
7704
+ function Evaluation(_ref) {
7731
7705
  let {
7732
7706
  poolInfo,
7733
7707
  payerAddress,
@@ -7765,7 +7739,7 @@ function Evaluation$1(_ref) {
7765
7739
  });
7766
7740
  }
7767
7741
 
7768
- function ChooseAmount$4(_ref) {
7742
+ function ChooseAmount(_ref) {
7769
7743
  var _poolInfo$extra;
7770
7744
  let {
7771
7745
  poolInfo,
@@ -7951,7 +7925,7 @@ function Permit(_ref) {
7951
7925
  });
7952
7926
  }
7953
7927
 
7954
- function Transfer$5(_ref) {
7928
+ function Transfer(_ref) {
7955
7929
  let {
7956
7930
  poolInfo
7957
7931
  } = _ref;
@@ -7980,7 +7954,7 @@ function Transfer$5(_ref) {
7980
7954
  });
7981
7955
  }
7982
7956
 
7983
- function Success$1(_ref) {
7957
+ function Success(_ref) {
7984
7958
  let {
7985
7959
  handleAction
7986
7960
  } = _ref;
@@ -8026,11 +8000,11 @@ function StreamFactoringBorrow(_ref) {
8026
8000
  isOpen: isOpen,
8027
8001
  handleClose: handleClose,
8028
8002
  handleSuccess: handleSuccess,
8029
- children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation$1, {
8003
+ children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation, {
8030
8004
  poolInfo: poolInfo,
8031
8005
  payerAddress: payerAddress,
8032
8006
  superToken: superToken
8033
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$4, {
8007
+ }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount, {
8034
8008
  poolInfo: poolInfo,
8035
8009
  currentFlowRate: currentFlowRate
8036
8010
  }), step === WIDGET_STEP.ConfirmTransfer && jsx(ConfirmTransfer, {}), step === WIDGET_STEP.ApproveAllowance && jsx(ApproveAllowance, {
@@ -8040,9 +8014,9 @@ function StreamFactoringBorrow(_ref) {
8040
8014
  payerAddress: payerAddress,
8041
8015
  borrower: account,
8042
8016
  superToken: superToken
8043
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$5, {
8017
+ }), step === WIDGET_STEP.Transfer && jsx(Transfer, {
8044
8018
  poolInfo: poolInfo
8045
- }), step === WIDGET_STEP.Done && jsx(Success$1, {
8019
+ }), step === WIDGET_STEP.Done && jsx(Success, {
8046
8020
  handleAction: handleClose
8047
8021
  }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
8048
8022
  title: "Stream Borrowing",
@@ -8567,1510 +8541,46 @@ const themeHuma = createTheme(themeBase, {
8567
8541
  components: components(themeBase)
8568
8542
  });
8569
8543
 
8570
- var _templateObject$4, _templateObject2$4;
8571
- function Evaluation(_ref) {
8544
+ function NotifiContextWrapper(_ref) {
8572
8545
  let {
8573
- poolInfo,
8574
- isUniTranche,
8575
- handleApproveSuccess
8546
+ chainId,
8547
+ children
8576
8548
  } = _ref;
8577
- const theme = useTheme();
8578
- const isDev = checkIsDev();
8579
- const dispatch = useAppDispatch();
8580
8549
  const {
8581
- publicKey
8582
- } = useWallet();
8583
- const [loading, setLoading] = useState(false);
8584
- const styles = {
8585
- iconWrapper: css(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n & > img {\n width: 144px;\n }\n "])), theme.cssMixins.rowCentered, theme.spacing(8)),
8586
- description: css(_templateObject2$4 || (_templateObject2$4 = _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)
8587
- };
8588
- const approveLender = async () => {
8589
- if (publicKey) {
8590
- try {
8591
- setLoading(true);
8592
- await IdentityServiceV2.approveSolanaLender(publicKey.toString(), poolInfo.chainId, poolInfo.juniorTrancheMint, isDev);
8593
- if (!isUniTranche) {
8594
- await IdentityServiceV2.approveSolanaLender(publicKey.toString(), poolInfo.chainId, poolInfo.seniorTrancheMint, isDev);
8595
- }
8596
- handleApproveSuccess();
8597
- setLoading(false);
8598
- dispatch(setStep(WIDGET_STEP.ChooseTranche));
8599
- } catch (e) {
8600
- const error = e;
8601
- setLoading(false);
8602
- dispatch(setError({
8603
- errorMessage: error.message
8604
- }));
8605
- }
8550
+ account,
8551
+ provider
8552
+ } = useWeb3React();
8553
+ const signer = useMemo(() => {
8554
+ if (provider instanceof providers.JsonRpcProvider) {
8555
+ return provider.getSigner();
8606
8556
  }
8607
- };
8608
- if (!loading) {
8609
- return jsxs(WrapperModal, {
8610
- title: "Lender Approval",
8611
- subTitle: "This pool requires lender approval",
8612
- children: [jsx(Box, {
8613
- css: styles.iconWrapper,
8614
- children: jsx("img", {
8615
- src: ApproveLenderImg,
8616
- alt: "approve-lender"
8617
- })
8618
- }), jsx(Box, {
8619
- css: styles.description
8620
- }), jsx(BottomButton, {
8621
- variant: "contained",
8622
- onClick: approveLender,
8623
- children: "GET APPROVED"
8624
- })]
8625
- });
8557
+ return undefined;
8558
+ }, [provider]);
8559
+ if (account == null || signer == null || chainId == null) {
8560
+ return null;
8626
8561
  }
8627
- return jsx(LoadingModal, {
8628
- title: "Approval Pending",
8629
- description: "Waiting for approval confirmation..."
8630
- });
8631
- }
8632
-
8633
- var _templateObject$3, _templateObject2$3, _templateObject3$3;
8634
- function ChooseTranche$2(_ref) {
8635
- let {
8636
- poolUnderlyingToken,
8637
- selectedTranche,
8638
- changeTranche
8639
- } = _ref;
8640
- const theme = useTheme();
8641
- const dispatch = useAppDispatch();
8642
- const styles = {
8643
- 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)),
8644
- radioGroup: css(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
8645
- 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)
8646
- };
8647
- const handleNext = () => {
8648
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
8649
- };
8650
- const items = [{
8651
- label: 'Senior',
8652
- value: 'senior'
8653
- }, {
8654
- label: 'Junior',
8655
- value: 'junior'
8656
- }];
8657
- return jsxs(WrapperModal, {
8658
- title: "Supply ".concat(poolUnderlyingToken.symbol),
8659
- children: [jsxs(FormControl, {
8660
- children: [jsx(FormLabel, {
8661
- css: styles.subTitle,
8662
- children: "Select Tranche Type"
8663
- }), jsx(RadioGroup, {
8664
- "aria-labelledby": "buttons-group-label",
8665
- name: "radio-buttons-group",
8666
- css: styles.radioGroup,
8667
- onChange: e => changeTranche(e.target.value),
8668
- children: items.map(item => jsx(FormControlLabel, {
8669
- value: item.value,
8670
- control: jsx(Radio, {
8671
- sx: {
8672
- '& .MuiSvgIcon-root': {
8673
- fontSize: 24
8674
- }
8675
- }
8676
- }),
8677
- label: item.label,
8678
- css: styles.formControl
8679
- }, item.label))
8680
- })]
8681
- }), jsx(BottomButton, {
8682
- variant: "contained",
8683
- disabled: !selectedTranche,
8684
- onClick: handleNext,
8685
- children: "NEXT"
8686
- })]
8687
- });
8688
- }
8689
-
8690
- function ChooseAmount$3(_ref) {
8691
- let {
8692
- poolInfo,
8693
- poolState,
8694
- tokenAccount,
8695
- selectedTranche,
8696
- isUniTranche
8697
- } = _ref;
8698
- const dispatch = useAppDispatch();
8699
- const {
8700
- symbol,
8701
- decimals
8702
- } = poolInfo.underlyingMint;
8703
- const [currentAmount, setCurrentAmount] = useState(0);
8704
- const balance = tokenAccount ? new BN(tokenAccount.amount.toString()) : new BN(0);
8705
- const {
8706
- juniorAvailableCapBN,
8707
- seniorAvailableCapBN
8708
- } = useMemo(() => {
8709
- const {
8710
- maxSeniorJuniorRatio,
8711
- liquidityCap,
8712
- seniorTrancheAssets,
8713
- juniorTrancheAssets
8714
- } = poolState;
8715
- const juniorTrancheAssetsBN = new BN(juniorTrancheAssets !== null && juniorTrancheAssets !== void 0 ? juniorTrancheAssets : 0);
8716
- const seniorTrancheAssetsBN = new BN(seniorTrancheAssets !== null && seniorTrancheAssets !== void 0 ? seniorTrancheAssets : 0);
8717
- const totalDeployedBN = seniorTrancheAssetsBN.add(juniorTrancheAssetsBN);
8718
- const totalAvailableCapBN = new BN(liquidityCap !== null && liquidityCap !== void 0 ? liquidityCap : 0).sub(totalDeployedBN);
8719
- const maxSeniorAssetsBN = juniorTrancheAssetsBN.muln(maxSeniorJuniorRatio !== null && maxSeniorJuniorRatio !== void 0 ? maxSeniorJuniorRatio : 0);
8720
- let seniorAvailableCapBN = maxSeniorAssetsBN.sub(seniorTrancheAssetsBN);
8721
- seniorAvailableCapBN = seniorAvailableCapBN.gt(totalAvailableCapBN) ? totalAvailableCapBN : seniorAvailableCapBN;
8722
- return {
8723
- juniorAvailableCapBN: totalAvailableCapBN.sub(seniorAvailableCapBN),
8724
- seniorAvailableCapBN
8725
- };
8726
- }, [poolState]);
8727
- const handleChangeAmount = newAmount => {
8728
- setCurrentAmount(newAmount);
8729
- dispatch(setSupplyAmount(Number(newAmount)));
8730
- };
8731
- const handleAction = () => {
8732
- dispatch(setStep(WIDGET_STEP.Transfer));
8733
- };
8734
- const getTrancheCap = () => {
8735
- if (selectedTranche === 'junior') {
8736
- return juniorAvailableCapBN;
8737
- }
8738
- return seniorAvailableCapBN;
8739
- };
8740
- const getMinAmount = () => {
8741
- const minAmount = poolState.minDepositAmount ? SolanaTokenUtils.formatUnits(new BN(poolState.minDepositAmount), decimals) : 0;
8742
- return Math.max(0, Math.ceil(Number(minAmount)));
8743
- };
8744
- const getMaxAmount = () => {
8745
- const trancheCap = getTrancheCap();
8746
- return balance.gt(trancheCap) ? trancheCap : balance;
8747
- };
8748
- const getInfos = () => {
8749
- const trancheCap = getTrancheCap();
8750
- const currentAmountBN = SolanaTokenUtils.parseUnits(String(currentAmount), decimals);
8751
- const remainingCap = trancheCap.sub(currentAmountBN);
8752
- if (remainingCap.ltn(0)) {
8753
- return ['0 remaining capacity'];
8754
- }
8755
- return ["".concat(formatNumber(SolanaTokenUtils.formatUnits(remainingCap, decimals)), " remaining capacity")];
8756
- };
8757
- return jsx(InputAmountModal, {
8758
- title: "Enter Amount",
8759
- subTitle: "Depositing to ".concat(isUniTranche ? 'uni tranche' : selectedTranche, " tranche"),
8760
- tokenSymbol: symbol,
8761
- currentAmount: currentAmount,
8762
- handleChangeAmount: handleChangeAmount,
8763
- minimumAmount: getMinAmount(),
8764
- maxAmount: Number(SolanaTokenUtils.formatUnits(getMaxAmount(), decimals)),
8765
- maxAmountTitle: "".concat(formatNumber(SolanaTokenUtils.formatUnits(balance, decimals)), " balance"),
8766
- infos: getInfos(),
8767
- handleAction: handleAction,
8768
- actionText: "SUPPLY"
8769
- });
8770
- }
8771
-
8772
- function SolanaViewOnExplorer(_ref) {
8773
- let {
8774
- chainId,
8775
- signature
8776
- } = _ref;
8777
- const link = getSolanaExplorerUrl(chainId, signature, 'tx');
8778
- if (!link) {
8779
- return null;
8780
- }
8781
- return jsx(Button, {
8782
- fullWidth: true,
8783
- variant: "outlined",
8784
- onClick: () => openInNewTab(link),
8785
- children: jsx(Box, {
8786
- component: "span",
8787
- children: "VIEW ON EXPLORER"
8788
- })
8789
- });
8790
- }
8791
-
8792
- function SolanaTxSendModal(_ref) {
8793
- let {
8794
- chainId,
8795
- tx,
8796
- handleSuccess
8797
- } = _ref;
8798
- const dispatch = useAppDispatch();
8799
- const {
8800
- sendTransaction
8801
- } = useWallet();
8802
- const {
8803
- connection
8804
- } = useConnection();
8805
- const [signature, setSignature] = useState('');
8806
- useEffect(() => {
8807
- async function sendTx() {
8808
- if (!connection || !tx) {
8809
- return;
8810
- }
8811
- try {
8812
- const latestBlockHash = await connection.getLatestBlockhash();
8813
- const signature = await sendTransaction(tx, connection);
8814
- setSignature(signature);
8815
- dispatch(setSolanaSignature(signature));
8816
- await connection.confirmTransaction({
8817
- blockhash: latestBlockHash.blockhash,
8818
- lastValidBlockHeight: latestBlockHash.lastValidBlockHeight,
8819
- signature
8820
- });
8821
- handleSuccess();
8822
- } catch (error) {
8823
- const err = error;
8824
- dispatch(setError({
8825
- errorMessage: (err === null || err === void 0 ? void 0 : err.message) || ''
8826
- }));
8827
- }
8828
- }
8829
- sendTx();
8830
- }, [connection, dispatch, handleSuccess, sendTransaction, tx]);
8831
- return jsx(LoadingModal, {
8832
- title: "Transaction Pending",
8833
- description: "Waiting for confirmation...",
8834
- children: jsx(SolanaViewOnExplorer, {
8835
- chainId: chainId,
8836
- signature: signature
8837
- })
8838
- });
8839
- }
8840
-
8841
- function Transfer$4(_ref) {
8842
- let {
8843
- poolInfo,
8844
- selectedTranche
8845
- } = _ref;
8846
- const dispatch = useAppDispatch();
8847
- const {
8848
- publicKey
8849
- } = useWallet();
8850
- const {
8851
- supplyAmount
8852
- } = useAppSelector(selectWidgetState);
8853
- const {
8854
- decimals
8855
- } = poolInfo.underlyingMint;
8856
- const supplyBigNumber = SolanaTokenUtils.parseUnits(String(supplyAmount), decimals);
8857
- const [transaction, setTransaction] = useState();
8858
- const {
8859
- juniorLenderApprovedAccountPDA,
8860
- seniorLenderApprovedAccountPDA,
8861
- seniorLenderStateAccount,
8862
- juniorLenderStateAccount,
8863
- loading: isLoadingLenderAccounts
8864
- } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
8865
- const program = useHumaProgram(poolInfo.chainId);
8866
- const handleSuccess = useCallback(() => {
8867
- dispatch(setStep(WIDGET_STEP.Done));
8868
- }, [dispatch]);
8869
- useEffect(() => {
8870
- async function getTx() {
8871
- if (!publicKey || transaction || isLoadingLenderAccounts) {
8872
- return;
8873
- }
8874
- const tx = new Transaction();
8875
- const {
8876
- underlyingTokenATA,
8877
- seniorTrancheATA,
8878
- juniorTrancheATA
8879
- } = getTokenAccounts(poolInfo, publicKey);
8880
- if (selectedTranche === 'senior' && !seniorLenderStateAccount || selectedTranche === 'junior' && !juniorLenderStateAccount) {
8881
- const createLenderAccountsTx = await program.methods.createLenderAccounts().accountsPartial({
8882
- lender: publicKey,
8883
- humaConfig: poolInfo.humaConfig,
8884
- poolConfig: poolInfo.poolConfig,
8885
- approvedLender: selectedTranche === 'senior' ? seniorLenderApprovedAccountPDA : juniorLenderApprovedAccountPDA,
8886
- trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
8887
- lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
8888
- tokenProgram: TOKEN_2022_PROGRAM_ID
8889
- }).transaction();
8890
- tx.add(createLenderAccountsTx);
8891
- }
8892
- const depositTx = await program.methods.deposit(supplyBigNumber).accountsPartial({
8893
- depositor: publicKey,
8894
- poolConfig: poolInfo.poolConfig,
8895
- underlyingMint: poolInfo.underlyingMint.address,
8896
- trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
8897
- poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
8898
- depositorUnderlyingToken: underlyingTokenATA,
8899
- depositorTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
8900
- humaConfig: poolInfo.humaConfig,
8901
- tokenProgram: TOKEN_2022_PROGRAM_ID
8902
- }).transaction();
8903
- tx.add(depositTx);
8904
- setTransaction(tx);
8905
- }
8906
- getTx();
8907
- }, [isLoadingLenderAccounts, juniorLenderApprovedAccountPDA, juniorLenderStateAccount, poolInfo, program.methods, publicKey, selectedTranche, seniorLenderApprovedAccountPDA, seniorLenderStateAccount, supplyBigNumber, transaction]);
8908
- if (isLoadingLenderAccounts) {
8909
- return jsx(LoadingModal, {
8910
- title: "Supply"
8911
- });
8912
- }
8913
- return jsx(SolanaTxSendModal, {
8914
- tx: transaction,
8915
- chainId: poolInfo.chainId,
8916
- handleSuccess: handleSuccess
8917
- });
8918
- }
8919
-
8920
- var _templateObject$2, _templateObject2$2, _templateObject3$2, _templateObject4, _templateObject5, _templateObject6;
8921
- function SolanaTxDoneModal(_ref) {
8922
- let {
8923
- content,
8924
- subContent,
8925
- handleAction,
8926
- solanaSignature,
8927
- chainId,
8928
- buttonText
8929
- } = _ref;
8930
- const theme = useTheme();
8931
- const dispatch = useAppDispatch();
8932
- const styles = {
8933
- wrapper: css(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n height: 518px;\n position: relative;\n "]))),
8934
- header: css(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral(["\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(-0.5)),
8935
- 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)),
8936
- 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)),
8937
- check: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n width: 100%;\n ", ";\n margin-top: ", ";\n "])), theme.cssMixins.rowHCentered, theme.spacing(10)),
8938
- 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))
8939
- };
8940
- const handleCloseModal = useCallback(() => {
8941
- dispatch(resetState());
8942
- handleAction();
8943
- }, [dispatch, handleAction]);
8944
- return jsxs(Box, {
8945
- css: styles.wrapper,
8946
- children: [jsx(Typography, {
8947
- variant: "h6",
8948
- css: styles.header,
8949
- children: "Transaction Completed"
8950
- }), jsx(Box, {
8951
- css: styles.check,
8952
- children: jsx(CheckIcon, {})
8953
- }), jsx(Box, {
8954
- css: styles.content,
8955
- children: content.map(item => jsx(Box, {
8956
- sx: {
8957
- marginTop: theme.spacing(1)
8958
- },
8959
- children: item
8960
- }, item))
8961
- }), subContent && jsx(Box, {
8962
- css: styles.subContent,
8963
- children: subContent.map(item => jsx(Box, {
8964
- sx: {
8965
- marginTop: theme.spacing(1)
8966
- },
8967
- children: item
8968
- }, item))
8969
- }), jsxs(Box, {
8970
- css: styles.bottomButtonGroup,
8971
- children: [solanaSignature && chainId && jsx(SolanaViewOnExplorer, {
8972
- signature: solanaSignature,
8973
- chainId: chainId
8974
- }), jsx(Button, {
8975
- className: "transaction-done-modal-close-btn",
8976
- variant: "contained",
8977
- fullWidth: true,
8978
- onClick: handleCloseModal,
8979
- children: !buttonText ? 'DONE' : buttonText
8980
- })]
8981
- })]
8982
- });
8983
- }
8984
-
8985
- function Success(_ref) {
8986
- let {
8987
- poolInfo,
8988
- poolState,
8989
- handleAction
8990
- } = _ref;
8991
- const {
8992
- supplyAmount,
8993
- solanaSignature
8994
- } = useAppSelector(selectWidgetState);
8995
- const {
8996
- symbol
8997
- } = poolInfo.underlyingMint;
8998
- const content = ["You successfully supplied ".concat(formatMoney(supplyAmount), " ").concat(symbol, ".")];
8999
- const getSubContent = () => {
9000
- var _poolState$withdrawal;
9001
- const lockupEndTime = dayjs().add((_poolState$withdrawal = poolState.withdrawalLockupPeriodDays) !== null && _poolState$withdrawal !== void 0 ? _poolState$withdrawal : 0, 'day').date(1);
9002
- const withdrawTime = lockupEndTime.add(1, 'month');
9003
- return ["You can begin submitting redemption requests on ".concat(timeUtil.timestampToLL(lockupEndTime.unix()), ", which can be redeemed starting ").concat(timeUtil.timestampToLL(withdrawTime.unix()), ".")];
9004
- };
9005
- return jsx(SolanaTxDoneModal, {
9006
- handleAction: handleAction,
9007
- content: content,
9008
- subContent: getSubContent(),
9009
- chainId: poolInfo.chainId,
9010
- solanaSignature: solanaSignature,
9011
- buttonText: "DONE"
9012
- });
9013
- }
9014
-
9015
- function SolanaLendSupply(_ref) {
9016
- let {
9017
- poolInfo,
9018
- poolState,
9019
- handleClose,
9020
- handleSuccess
9021
- } = _ref;
9022
- const dispatch = useDispatch();
9023
- const {
9024
- isUniTranche
9025
- } = poolState;
9026
- const {
9027
- seniorLenderApproved,
9028
- juniorLenderApproved,
9029
- loading: isLoadingLenderAccounts,
9030
- refresh: refreshLenderAccounts
9031
- } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
9032
- const [tokenAccount, isLoadingTokenAccount] = useTokenAccount(poolInfo);
9033
- const {
9034
- step,
9035
- errorMessage
9036
- } = useAppSelector(selectWidgetState);
9037
- const [selectedTranche, setSelectedTranche] = useState();
9038
- useEffect(() => {
9039
- if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccount) {
9040
- if (!juniorLenderApproved && !seniorLenderApproved) {
9041
- dispatch(setStep(WIDGET_STEP.Evaluation));
9042
- return;
9043
- }
9044
- if (juniorLenderApproved && !seniorLenderApproved) {
9045
- setSelectedTranche('junior');
9046
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9047
- return;
9048
- }
9049
- if (seniorLenderApproved && !juniorLenderApproved) {
9050
- setSelectedTranche('senior');
9051
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9052
- return;
9053
- }
9054
- if (juniorLenderApproved && seniorLenderApproved) {
9055
- dispatch(setStep(WIDGET_STEP.ChooseTranche));
9056
- }
9057
- }
9058
- }, [dispatch, handleClose, poolInfo, step, isLoadingLenderAccounts, juniorLenderApproved, seniorLenderApproved, isLoadingTokenAccount]);
9059
- const handleApproveSuccess = useCallback(() => {
9060
- refreshLenderAccounts();
9061
- }, [refreshLenderAccounts]);
9062
- if (isLoadingLenderAccounts || isLoadingTokenAccount) {
9063
- return jsx(WidgetWrapper, {
9064
- isOpen: true,
9065
- isLoading: true,
9066
- loadingTitle: "Supply",
9067
- handleClose: handleClose,
9068
- handleSuccess: handleSuccess
9069
- });
9070
- }
9071
- return jsxs(WidgetWrapper, {
9072
- isOpen: true,
9073
- loadingTitle: "Supply ".concat(poolInfo.underlyingMint.symbol),
9074
- handleClose: handleClose,
9075
- handleSuccess: handleSuccess,
9076
- children: [step === WIDGET_STEP.Evaluation && jsx(Evaluation, {
9077
- poolInfo: poolInfo,
9078
- isUniTranche: isUniTranche,
9079
- handleApproveSuccess: handleApproveSuccess
9080
- }), step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$2, {
9081
- poolUnderlyingToken: poolInfo.underlyingMint,
9082
- selectedTranche: selectedTranche,
9083
- changeTranche: setSelectedTranche
9084
- }), step === WIDGET_STEP.ChooseAmount && jsx(ChooseAmount$3, {
9085
- poolInfo: poolInfo,
9086
- poolState: poolState,
9087
- tokenAccount: tokenAccount,
9088
- selectedTranche: selectedTranche,
9089
- isUniTranche: isUniTranche
9090
- }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$4, {
9091
- poolInfo: poolInfo,
9092
- selectedTranche: selectedTranche
9093
- }), step === WIDGET_STEP.Done && jsx(Success, {
9094
- poolInfo: poolInfo,
9095
- poolState: poolState,
9096
- handleAction: handleClose
9097
- }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
9098
- title: "Supply",
9099
- errorReason: "Sorry there was an error",
9100
- errorMessage: errorMessage,
9101
- handleOk: handleClose
9102
- })]
9103
- });
9104
- }
9105
-
9106
- function ChooseAmount$2(_ref) {
9107
- let {
9108
- poolInfo,
9109
- poolState,
9110
- selectedTranche,
9111
- lenderState
9112
- } = _ref;
9113
- const dispatch = useAppDispatch();
9114
- const {
9115
- symbol
9116
- } = poolInfo.underlyingMint;
9117
- const [currentAmount, setCurrentAmount] = useState(0);
9118
- const [currentShares, setCurrentShares] = useState(0);
9119
- const {
9120
- mintAccount,
9121
- loading: isLoadingTrancheMintAccounts
9122
- } = useTrancheMintAccounts(poolInfo, selectedTranche);
9123
- const {
9124
- seniorTokenAccount,
9125
- juniorTokenAccount,
9126
- loading: isLoadingTokenAccounts
9127
- } = useTrancheTokenAccounts(poolInfo);
9128
- const maxSharesFormatted = useMemo(() => {
9129
- var _seniorTokenAccount$a, _seniorTokenAccount$a2, _juniorTokenAccount$a, _juniorTokenAccount$a2;
9130
- if (!(mintAccount !== null && mintAccount !== void 0 && mintAccount.decimals)) {
9131
- return 0;
9132
- }
9133
- 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);
9134
- }, [mintAccount, juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount, selectedTranche, seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount]);
9135
- const sharePrice = useMemo(() => {
9136
- var _poolState$seniorTran, _poolState$juniorTran;
9137
- if (!(mintAccount !== null && mintAccount !== void 0 && mintAccount.decimals) || !(mintAccount !== null && mintAccount !== void 0 && mintAccount.supply)) {
9138
- return 0;
9139
- }
9140
- const mintSupplyFormatted = Number(SolanaTokenUtils.formatUnits(new BN(mintAccount.supply.toString()), mintAccount.decimals));
9141
- if (mintSupplyFormatted === 0) {
9142
- return 0;
9143
- }
9144
- 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));
9145
- if (selectedTranche === 'senior') {
9146
- return seniorTrancheAssetsFormatted / mintSupplyFormatted;
9147
- }
9148
- 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));
9149
- return juniorTrancheAssetsFormatted / mintSupplyFormatted;
9150
- }, [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]);
9151
- useEffect(() => {
9152
- if (poolState !== null && poolState !== void 0 && poolState.withdrawalLockupPeriodDays && poolState !== null && poolState !== void 0 && poolState.epochEndTime && lenderState) {
9153
- const SECONDS_IN_A_DAY = 24 * 60 * 60;
9154
- const lastDepositTime = Number(lenderState.depositRecord.lastDepositTime);
9155
- const lockupEndTime = lastDepositTime + poolState.withdrawalLockupPeriodDays * SECONDS_IN_A_DAY;
9156
- if (poolState.epochEndTime < lockupEndTime) {
9157
- const lockupEndTimeDayjs = dayjs.unix(lockupEndTime).date(1);
9158
- dispatch(setStep(WIDGET_STEP.Error));
9159
- dispatch(setError({
9160
- errorReason: 'Redemption too soon',
9161
- errorMessage: "Your last deposit was on ".concat(timestampToLL(lastDepositTime), ". You can redeem on ").concat(timestampToLL(lockupEndTimeDayjs.unix()), ".")
9162
- }));
9163
- }
9164
- }
9165
- }, [dispatch, lenderState, poolState.epochEndTime, poolState.withdrawalLockupPeriodDays]);
9166
- const handleChangeShares = newShares => {
9167
- const amount = Number(newShares) * sharePrice;
9168
- setCurrentShares(Number(newShares));
9169
- setCurrentAmount(amount);
9170
- dispatch(setRedeemShares(Number(newShares)));
9171
- dispatch(setRedeemAmount(amount));
9172
- };
9173
- const handleAction = () => {
9174
- dispatch(setStep(WIDGET_STEP.Transfer));
9175
- };
9176
- if (isLoadingTokenAccounts || isLoadingTrancheMintAccounts || !lenderState || (poolState === null || poolState === void 0 ? void 0 : poolState.withdrawalLockupPeriodDays) === undefined ||
9177
- // withdrawalLockupPeriodDays can be 0
9178
- !(poolState !== null && poolState !== void 0 && poolState.epochEndTime)) {
9179
- return jsx(LoadingModal, {
9180
- title: "Redemption"
9181
- });
9182
- }
9183
- return jsx(InputAmountModal, {
9184
- title: "Redemption",
9185
- subTitle: "Enter number of shares to redeem from the ".concat(selectedTranche, " tranche"),
9186
- tokenSymbol: symbol,
9187
- currentAmount: currentShares,
9188
- handleChangeAmount: handleChangeShares,
9189
- maxAmount: maxSharesFormatted,
9190
- infos: ["".concat(String(formatNumber(currentAmount)), " ").concat(symbol)],
9191
- maxAmountTitle: "".concat(formatNumber(maxSharesFormatted), " Shares"),
9192
- suffix: "Shares",
9193
- handleAction: handleAction,
9194
- actionText: "REQUEST"
9195
- });
9196
- }
9197
-
9198
- var _templateObject$1, _templateObject2$1, _templateObject3$1;
9199
- function ChooseTranche$1(_ref) {
9200
- let {
9201
- selectedTranche,
9202
- changeTranche
9203
- } = _ref;
9204
- const theme = useTheme();
9205
- const dispatch = useAppDispatch();
9206
- const styles = {
9207
- 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)),
9208
- radioGroup: css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
9209
- 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)
9210
- };
9211
- const handleNext = () => {
9212
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9213
- };
9214
- const items = [{
9215
- label: 'Senior',
9216
- value: 'senior'
9217
- }, {
9218
- label: 'Junior',
9219
- value: 'junior'
9220
- }];
9221
- return jsxs(WrapperModal, {
9222
- title: "Redemption",
9223
- children: [jsxs(FormControl, {
9224
- children: [jsx(FormLabel, {
9225
- css: styles.subTitle,
9226
- children: "Select Tranche Type"
9227
- }), jsx(RadioGroup, {
9228
- "aria-labelledby": "buttons-group-label",
9229
- name: "radio-buttons-group",
9230
- css: styles.radioGroup,
9231
- onChange: e => changeTranche(e.target.value),
9232
- children: items.map(item => jsx(FormControlLabel, {
9233
- value: item.value,
9234
- control: jsx(Radio, {
9235
- sx: {
9236
- '& .MuiSvgIcon-root': {
9237
- fontSize: 24
9238
- }
9239
- }
9240
- }),
9241
- label: item.label,
9242
- css: styles.formControl
9243
- }, item.label))
9244
- })]
9245
- }), jsx(BottomButton, {
9246
- variant: "contained",
9247
- disabled: !selectedTranche,
9248
- onClick: handleNext,
9249
- children: "NEXT"
9250
- })]
9251
- });
9252
- }
9253
-
9254
- function Done$3(_ref) {
9255
- let {
9256
- poolInfo,
9257
- handleAction
9258
- } = _ref;
9259
- const {
9260
- redeemShares,
9261
- solanaSignature
9262
- } = useAppSelector(selectWidgetState);
9263
- const content = ["".concat(formatNumber(redeemShares), " shares requested for redemption")];
9264
- return jsx(SolanaTxDoneModal, {
9265
- handleAction: handleAction,
9266
- content: content,
9267
- chainId: poolInfo.chainId,
9268
- solanaSignature: solanaSignature,
9269
- buttonText: "DONE"
9270
- });
9271
- }
9272
-
9273
- function Transfer$3(_ref) {
9274
- let {
9275
- poolInfo,
9276
- selectedTranche
9277
- } = _ref;
9278
- const dispatch = useAppDispatch();
9279
- const {
9280
- publicKey
9281
- } = useWallet();
9282
- const {
9283
- redeemShares
9284
- } = useAppSelector(selectWidgetState);
9285
- const {
9286
- mintAccount
9287
- } = useTrancheMintAccounts(poolInfo, selectedTranche);
9288
- const [transaction, setTransaction] = useState();
9289
- const program = useHumaProgram(poolInfo.chainId);
9290
- const redeemBN = useMemo(() => {
9291
- if (!mintAccount) {
9292
- return null;
9293
- }
9294
- return SolanaTokenUtils.parseUnits(String(redeemShares), mintAccount === null || mintAccount === void 0 ? void 0 : mintAccount.decimals);
9295
- }, [mintAccount, redeemShares]);
9296
- const handleSuccess = useCallback(() => {
9297
- dispatch(setStep(WIDGET_STEP.Done));
9298
- }, [dispatch]);
9299
- useEffect(() => {
9300
- async function getTx() {
9301
- if (!publicKey || !redeemBN || transaction) {
9302
- return;
9303
- }
9304
- const {
9305
- seniorTrancheATA,
9306
- juniorTrancheATA,
9307
- poolSeniorTrancheATA,
9308
- poolJuniorTrancheATA
9309
- } = getTokenAccounts(poolInfo, publicKey);
9310
- const tx = await program.methods.addRedemptionRequest(redeemBN).accountsPartial({
9311
- lender: publicKey,
9312
- humaConfig: poolInfo.humaConfig,
9313
- poolConfig: poolInfo.poolConfig,
9314
- trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
9315
- poolTrancheToken: selectedTranche === 'senior' ? poolSeniorTrancheATA : poolJuniorTrancheATA,
9316
- lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
9317
- tokenProgram: TOKEN_2022_PROGRAM_ID
9318
- }).transaction();
9319
- setTransaction(tx);
9320
- }
9321
- getTx();
9322
- }, [poolInfo, program.methods, publicKey, redeemBN, selectedTranche, transaction]);
9323
- return jsx(SolanaTxSendModal, {
9324
- tx: transaction,
9325
- chainId: poolInfo.chainId,
9326
- handleSuccess: handleSuccess
9327
- });
9328
- }
9329
-
9330
- function SolanaLendAddRedemption(_ref) {
9331
- let {
9332
- poolInfo,
9333
- poolState,
9334
- tranche,
9335
- handleClose,
9336
- handleSuccess
9337
- } = _ref;
9338
- const dispatch = useDispatch();
9339
- const {
9340
- seniorLenderStateAccount,
9341
- juniorLenderStateAccount,
9342
- loading: isLoadingLenderAccounts
9343
- } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
9344
- const {
9345
- seniorTokenAccount,
9346
- juniorTokenAccount,
9347
- loading: isLoadingTokenAccounts
9348
- } = useTrancheTokenAccounts(poolInfo);
9349
- const {
9350
- step,
9351
- errorMessage
9352
- } = useAppSelector(selectWidgetState);
9353
- const [selectedTranche, setSelectedTranche] = useState(tranche);
9354
- useEffect(() => {
9355
- if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccounts) {
9356
- var _seniorTokenAccount$a, _seniorTokenAccount$a2, _juniorTokenAccount$a, _juniorTokenAccount$a2;
9357
- 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);
9358
- 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);
9359
- if (selectedTranche) {
9360
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9361
- return;
9362
- }
9363
- if (juniorTrancheShares.gtn(0) && seniorTrancheShares.lten(0)) {
9364
- setSelectedTranche('junior');
9365
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9366
- return;
9367
- }
9368
- if (seniorTrancheShares.gtn(0) && juniorTrancheShares.lten(0)) {
9369
- setSelectedTranche('senior');
9370
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9371
- return;
9372
- }
9373
- if (seniorTrancheShares.gtn(0) && juniorTrancheShares.gtn(0)) {
9374
- dispatch(setStep(WIDGET_STEP.ChooseTranche));
9375
- }
9376
- }
9377
- }, [dispatch, step, isLoadingLenderAccounts, isLoadingTokenAccounts, seniorTokenAccount === null || seniorTokenAccount === void 0 ? void 0 : seniorTokenAccount.amount, juniorTokenAccount === null || juniorTokenAccount === void 0 ? void 0 : juniorTokenAccount.amount, selectedTranche]);
9378
- const title = 'Redemption';
9379
- if (isLoadingLenderAccounts || isLoadingTokenAccounts) {
9380
- return jsx(WidgetWrapper, {
9381
- isOpen: true,
9382
- isLoading: true,
9383
- loadingTitle: title,
9384
- handleClose: handleClose,
9385
- handleSuccess: handleSuccess
9386
- });
9387
- }
9388
- return jsxs(WidgetWrapper, {
9389
- isOpen: true,
9390
- loadingTitle: title,
9391
- handleClose: handleClose,
9392
- handleSuccess: handleSuccess,
9393
- children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche$1, {
9394
- selectedTranche: selectedTranche,
9395
- changeTranche: setSelectedTranche
9396
- }), step === WIDGET_STEP.ChooseAmount && selectedTranche && jsx(ChooseAmount$2, {
9397
- poolInfo: poolInfo,
9398
- poolState: poolState,
9399
- lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
9400
- selectedTranche: selectedTranche
9401
- }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$3, {
9402
- poolInfo: poolInfo,
9403
- selectedTranche: selectedTranche
9404
- }), step === WIDGET_STEP.Done && jsx(Done$3, {
9405
- poolInfo: poolInfo,
9406
- handleAction: handleClose
9407
- }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
9408
- title: title,
9409
- errorReason: "Sorry there was an error",
9410
- errorMessage: errorMessage,
9411
- handleOk: handleClose
9412
- })]
9413
- });
9414
- }
9415
-
9416
- function Transfer$2(_ref) {
9417
- let {
9418
- poolInfo,
9419
- lenderState,
9420
- lenderStatePDA,
9421
- selectedTranche
9422
- } = _ref;
9423
- const dispatch = useAppDispatch();
9424
- const {
9425
- publicKey
9426
- } = useWallet();
9427
- const [transaction, setTransaction] = useState();
9428
- const program = useHumaProgram(poolInfo.chainId);
9429
- const handleSuccess = useCallback(() => {
9430
- dispatch(setStep(WIDGET_STEP.Done));
9431
- }, [dispatch]);
9432
- useEffect(() => {
9433
- async function getTx() {
9434
- if (!publicKey || !lenderState || !lenderStatePDA || transaction) {
9435
- return;
9436
- }
9437
- const {
9438
- seniorTrancheATA,
9439
- juniorTrancheATA,
9440
- poolSeniorTrancheATA,
9441
- poolJuniorTrancheATA
9442
- } = getTokenAccounts(poolInfo, publicKey);
9443
- const tx = await program.methods.cancelRedemptionRequest(lenderState.redemptionRecord.numSharesRequested).accountsPartial({
9444
- lender: publicKey,
9445
- humaConfig: poolInfo.humaConfig,
9446
- poolConfig: poolInfo.poolConfig,
9447
- trancheMint: selectedTranche === 'senior' ? poolInfo.seniorTrancheMint : poolInfo.juniorTrancheMint,
9448
- trancheState: selectedTranche === 'senior' ? poolInfo.seniorTrancheState : poolInfo.juniorTrancheState,
9449
- lenderState: lenderStatePDA,
9450
- poolAuthority: poolInfo.poolAuthority,
9451
- poolTrancheToken: selectedTranche === 'senior' ? poolSeniorTrancheATA : poolJuniorTrancheATA,
9452
- lenderTrancheToken: selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA,
9453
- tokenProgram: TOKEN_2022_PROGRAM_ID
9454
- }).transaction();
9455
- setTransaction(tx);
9456
- }
9457
- getTx();
9458
- }, [lenderState, lenderStatePDA, poolInfo, program.methods, publicKey, selectedTranche, transaction]);
9459
- return jsx(SolanaTxSendModal, {
9460
- tx: transaction,
9461
- chainId: poolInfo.chainId,
9462
- handleSuccess: handleSuccess
9463
- });
9464
- }
9465
-
9466
- var _templateObject, _templateObject2, _templateObject3;
9467
- function ChooseTranche(_ref) {
9468
- let {
9469
- selectedTranche,
9470
- changeTranche
9471
- } = _ref;
9472
- const theme = useTheme();
9473
- const dispatch = useAppDispatch();
9474
- const styles = {
9475
- 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)),
9476
- radioGroup: css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin-left: ", ";\n margin-top: ", ";\n "])), theme.spacing(3), theme.spacing(3)),
9477
- 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)
9478
- };
9479
- const handleNext = () => {
9480
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9481
- };
9482
- const items = [{
9483
- label: 'Senior',
9484
- value: 'senior'
9485
- }, {
9486
- label: 'Junior',
9487
- value: 'junior'
9488
- }];
9489
- return jsxs(WrapperModal, {
9490
- title: "Cancel Redemption",
9491
- children: [jsxs(FormControl, {
9492
- children: [jsx(FormLabel, {
9493
- css: styles.subTitle,
9494
- children: "Select Tranche Type"
9495
- }), jsx(RadioGroup, {
9496
- "aria-labelledby": "buttons-group-label",
9497
- name: "radio-buttons-group",
9498
- css: styles.radioGroup,
9499
- onChange: e => changeTranche(e.target.value),
9500
- children: items.map(item => jsx(FormControlLabel, {
9501
- value: item.value,
9502
- control: jsx(Radio, {
9503
- sx: {
9504
- '& .MuiSvgIcon-root': {
9505
- fontSize: 24
9506
- }
9507
- }
9508
- }),
9509
- label: item.label,
9510
- css: styles.formControl
9511
- }, item.label))
9512
- })]
9513
- }), jsx(BottomButton, {
9514
- variant: "contained",
9515
- disabled: !selectedTranche,
9516
- onClick: handleNext,
9517
- children: "NEXT"
9518
- })]
9519
- });
9520
- }
9521
-
9522
- function Done$2(_ref) {
9523
- let {
9524
- poolInfo,
9525
- lenderState,
9526
- selectedTranche,
9527
- handleAction
9528
- } = _ref;
9529
- const {
9530
- mintAccount,
9531
- loading: isLoadingTrancheMintAccounts
9532
- } = useTrancheMintAccounts(poolInfo, selectedTranche);
9533
- const {
9534
- solanaSignature
9535
- } = useAppSelector(selectWidgetState);
9536
- 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.")];
9537
- return jsx(SolanaTxDoneModal, {
9538
- handleAction: handleAction,
9539
- content: content,
9540
- chainId: poolInfo.chainId,
9541
- solanaSignature: solanaSignature,
9542
- buttonText: "DONE"
9543
- });
9544
- }
9545
-
9546
- function SolanaLendCancelRedemption(_ref) {
9547
- let {
9548
- poolInfo,
9549
- tranche,
9550
- handleClose,
9551
- handleSuccess
9552
- } = _ref;
9553
- const dispatch = useDispatch();
9554
- const {
9555
- seniorLenderStateAccount,
9556
- juniorLenderStateAccount,
9557
- juniorLenderStateAccountPDA,
9558
- seniorLenderStateAccountPDA,
9559
- loading: isLoadingLenderAccounts
9560
- } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName);
9561
- const {
9562
- step,
9563
- errorMessage
9564
- } = useAppSelector(selectWidgetState);
9565
- const [selectedTranche, setSelectedTranche] = useState(tranche);
9566
- useEffect(() => {
9567
- if (!step && !isLoadingLenderAccounts) {
9568
- var _seniorLenderStateAcc, _juniorLenderStateAcc;
9569
- const seniorTrancheSharesRequested = new BN((_seniorLenderStateAcc = seniorLenderStateAccount === null || seniorLenderStateAccount === void 0 ? void 0 : seniorLenderStateAccount.redemptionRecord.numSharesRequested) !== null && _seniorLenderStateAcc !== void 0 ? _seniorLenderStateAcc : 0);
9570
- const juniorTrancheSharesRequested = new BN((_juniorLenderStateAcc = juniorLenderStateAccount === null || juniorLenderStateAccount === void 0 ? void 0 : juniorLenderStateAccount.redemptionRecord.numSharesRequested) !== null && _juniorLenderStateAcc !== void 0 ? _juniorLenderStateAcc : 0);
9571
- if (selectedTranche) {
9572
- dispatch(setStep(WIDGET_STEP.Transfer));
9573
- return;
9574
- }
9575
- if (juniorTrancheSharesRequested.gtn(0) && seniorTrancheSharesRequested.lten(0)) {
9576
- setSelectedTranche('junior');
9577
- dispatch(setStep(WIDGET_STEP.Transfer));
9578
- return;
9579
- }
9580
- if (seniorTrancheSharesRequested.gtn(0) && juniorTrancheSharesRequested.lten(0)) {
9581
- setSelectedTranche('senior');
9582
- dispatch(setStep(WIDGET_STEP.Transfer));
9583
- return;
9584
- }
9585
- if (seniorTrancheSharesRequested.gtn(0) && juniorTrancheSharesRequested.gtn(0)) {
9586
- dispatch(setStep(WIDGET_STEP.ChooseTranche));
9587
- }
9588
- }
9589
- }, [dispatch, step, isLoadingLenderAccounts, seniorLenderStateAccount === null || seniorLenderStateAccount === void 0 ? void 0 : seniorLenderStateAccount.redemptionRecord.numSharesRequested, juniorLenderStateAccount === null || juniorLenderStateAccount === void 0 ? void 0 : juniorLenderStateAccount.redemptionRecord.numSharesRequested, selectedTranche]);
9590
- const title = 'Cancel Redemption';
9591
- if (isLoadingLenderAccounts) {
9592
- return jsx(WidgetWrapper, {
9593
- isOpen: true,
9594
- isLoading: true,
9595
- loadingTitle: title,
9596
- handleClose: handleClose,
9597
- handleSuccess: handleSuccess
9598
- });
9599
- }
9600
- return jsxs(WidgetWrapper, {
9601
- isOpen: true,
9602
- loadingTitle: title,
9603
- handleClose: handleClose,
9604
- handleSuccess: handleSuccess,
9605
- children: [step === WIDGET_STEP.ChooseTranche && jsx(ChooseTranche, {
9606
- selectedTranche: selectedTranche,
9607
- changeTranche: setSelectedTranche
9608
- }), step === WIDGET_STEP.Transfer && selectedTranche && jsx(Transfer$2, {
9609
- poolInfo: poolInfo,
9610
- lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
9611
- lenderStatePDA: selectedTranche === 'senior' ? seniorLenderStateAccountPDA : juniorLenderStateAccountPDA,
9612
- selectedTranche: selectedTranche
9613
- }), step === WIDGET_STEP.Done && selectedTranche && jsx(Done$2, {
9614
- poolInfo: poolInfo,
9615
- lenderState: selectedTranche === 'senior' ? seniorLenderStateAccount : juniorLenderStateAccount,
9616
- selectedTranche: selectedTranche,
9617
- handleAction: handleClose
9618
- }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
9619
- title: title,
9620
- errorReason: "Sorry there was an error",
9621
- errorMessage: errorMessage,
9622
- handleOk: handleClose
9623
- })]
9624
- });
9625
- }
9626
-
9627
- function ChooseAmount$1(_ref) {
9628
- let {
9629
- poolInfo,
9630
- creditConfigAccount
9631
- } = _ref;
9632
- const dispatch = useAppDispatch();
9633
- const {
9634
- symbol,
9635
- decimals
9636
- } = poolInfo.underlyingMint;
9637
- const [currentAmount, setCurrentAmount] = useState(0);
9638
- const creditAvailable = useMemo(() => SolanaTokenUtils.formatUnits(creditConfigAccount.creditAvailable, decimals), [creditConfigAccount.creditAvailable, decimals]);
9639
- const handleChangeAmount = newAmount => {
9640
- setCurrentAmount(newAmount);
9641
- };
9642
- const handleAction = useCallback(() => {
9643
- const borrowAmountBN = SolanaTokenUtils.parseUnits(String(currentAmount), decimals);
9644
- dispatch(setBorrowInfo({
9645
- borrowAmount: currentAmount,
9646
- borrowAmountBN: JSON.parse(borrowAmountBN.toString()),
9647
- chargedFees: 0,
9648
- nextStep: WIDGET_STEP.Transfer
9649
- }));
9650
- }, [currentAmount, decimals, dispatch]);
9651
- return jsx(InputAmountModal, {
9652
- title: "Borrow",
9653
- subTitle: "Choose Amount",
9654
- tokenSymbol: symbol,
9655
- currentAmount: currentAmount,
9656
- handleChangeAmount: handleChangeAmount,
9657
- maxAmount: creditAvailable,
9658
- infos: ["".concat(String(formatNumber(creditAvailable)), " ").concat(symbol, " Available")],
9659
- handleAction: handleAction,
9660
- actionText: "BORROW"
9661
- });
9662
- }
9663
-
9664
- function Transfer$1(_ref) {
9665
- let {
9666
- poolInfo
9667
- } = _ref;
9668
- const dispatch = useAppDispatch();
9669
- const {
9670
- wallet,
9671
- publicKey
9672
- } = useWallet();
9673
- const sentinel = getSentinelAddress(poolInfo.chainId);
9674
- const {
9675
- connection
9676
- } = useConnection();
9677
- const [transaction, setTransaction] = useState();
9678
- const program = useHumaProgram(poolInfo.chainId);
9679
- const {
9680
- borrowAmountBN: borrowAmountBNJson
9681
- } = useAppSelector(selectWidgetState);
9682
- const handleSuccess = useCallback(() => {
9683
- dispatch(setStep(WIDGET_STEP.Done));
9684
- }, [dispatch]);
9685
- useEffect(() => {
9686
- async function getTx() {
9687
- var _borrowAmountBNJson$t, _tokenAccount$delegat;
9688
- if (!wallet || !publicKey || !connection) {
9689
- return;
9690
- }
9691
- const {
9692
- underlyingTokenATA
9693
- } = getTokenAccounts(poolInfo, publicKey);
9694
- const tx = new Transaction();
9695
-
9696
- // Create user token account if it doesn't exist
9697
- let tokenAccount;
9698
- try {
9699
- tokenAccount = await getAccount(connection, underlyingTokenATA, undefined, TOKEN_2022_PROGRAM_ID);
9700
- } catch (error) {
9701
- // TokenAccountNotFoundError can be possible if the associated address has already received some lamports,
9702
- // becoming a system account. Assuming program derived addressing is safe, this is the only case for the
9703
- // TokenInvalidAccountOwnerError in this code path.
9704
- if (error instanceof TokenAccountNotFoundError || error instanceof TokenInvalidAccountOwnerError) {
9705
- // As this isn't atomic, it's possible others can create associated accounts meanwhile.
9706
- tx.add(createAssociatedTokenAccountInstruction(publicKey, underlyingTokenATA, publicKey, new PublicKey(poolInfo.underlyingMint.address), TOKEN_2022_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID));
9707
- }
9708
- }
9709
-
9710
- // Approve allowance to the sentinel if the account is new or delegated amount is not enough
9711
- const borrowAmountBN = new BN((_borrowAmountBNJson$t = borrowAmountBNJson === null || borrowAmountBNJson === void 0 ? void 0 : borrowAmountBNJson.toString()) !== null && _borrowAmountBNJson$t !== void 0 ? _borrowAmountBNJson$t : '0');
9712
- if (!tokenAccount || borrowAmountBN.gt(new BN(tokenAccount.delegatedAmount.toString())) || ((_tokenAccount$delegat = tokenAccount.delegate) === null || _tokenAccount$delegat === void 0 ? void 0 : _tokenAccount$delegat.toString()) !== sentinel) {
9713
- tx.add(createApproveCheckedInstruction(underlyingTokenATA, new PublicKey(poolInfo.underlyingMint.address), new PublicKey(sentinel),
9714
- // delegate
9715
- publicKey,
9716
- // owner of the wallet
9717
- BigInt(SolanaTokenUtils.parseUnits('100000000000',
9718
- // 100 billion
9719
- poolInfo.underlyingMint.decimals).toString()),
9720
- // amount
9721
- poolInfo.underlyingMint.decimals, undefined,
9722
- // multiSigners
9723
- TOKEN_2022_PROGRAM_ID));
9724
- }
9725
- const {
9726
- creditConfigAccount,
9727
- creditStateAccount
9728
- } = getCreditAccounts(poolInfo, publicKey);
9729
- // borrowAmountBNJson is stored as a raw number string in this flow
9730
- const programTx = await program.methods.drawdown(borrowAmountBN).accountsPartial({
9731
- borrower: publicKey,
9732
- humaConfig: poolInfo.humaConfig,
9733
- poolConfig: poolInfo.poolConfig,
9734
- poolState: poolInfo.poolState,
9735
- creditConfig: creditConfigAccount,
9736
- creditState: creditStateAccount,
9737
- poolAuthority: poolInfo.poolAuthority,
9738
- underlyingMint: poolInfo.underlyingMint.address,
9739
- poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
9740
- borrowerUnderlyingToken: underlyingTokenATA,
9741
- tokenProgram: TOKEN_2022_PROGRAM_ID
9742
- }).transaction();
9743
- tx.add(programTx);
9744
- setTransaction(tx);
9745
- }
9746
- getTx();
9747
- }, [borrowAmountBNJson, connection, dispatch, poolInfo, poolInfo.underlyingMint.address, poolInfo.underlyingMint.decimals, program.methods, publicKey, sentinel, wallet]);
9748
- return jsx(SolanaTxSendModal, {
9749
- tx: transaction,
9750
- chainId: poolInfo.chainId,
9751
- handleSuccess: handleSuccess
9752
- });
9753
- }
9754
-
9755
- function Done$1(_ref) {
9756
- let {
9757
- poolInfo,
9758
- poolState,
9759
- handleAction
9760
- } = _ref;
9761
- const {
9762
- borrowAmount,
9763
- solanaSignature
9764
- } = useAppSelector(selectWidgetState);
9765
- const {
9766
- symbol
9767
- } = poolInfo.underlyingMint;
9768
- const dueDate = timeUtil.timestampToLL(poolState.epochEndTime);
9769
- const content = ["".concat(formatNumber(borrowAmount), " ").concat(symbol, " is now in your wallet."), "Note: your first automatic payment will occur after ".concat(dueDate, ".")];
9770
- return jsx(SolanaTxDoneModal, {
9771
- handleAction: handleAction,
9772
- content: content,
9773
- chainId: poolInfo.chainId,
9774
- solanaSignature: solanaSignature,
9775
- buttonText: "DONE"
9776
- });
9777
- }
9778
-
9779
- function SolanaBorrow(_ref) {
9780
- let {
9781
- poolInfo,
9782
- poolState,
9783
- handleClose,
9784
- handleSuccess
9785
- } = _ref;
9786
- const dispatch = useDispatch();
9787
- const {
9788
- creditConfigAccount,
9789
- loading: isLoadingBorrowerAccounts
9790
- } = useBorrowerAccounts(poolInfo.chainId, poolInfo.poolName);
9791
- const {
9792
- step,
9793
- errorMessage
9794
- } = useAppSelector(selectWidgetState);
9795
- useEffect(() => {
9796
- if (!step) {
9797
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
9798
- }
9799
- }, [dispatch, step]);
9800
- const title = 'Borrow';
9801
- if (isLoadingBorrowerAccounts) {
9802
- return jsx(WidgetWrapper, {
9803
- isOpen: true,
9804
- isLoading: true,
9805
- loadingTitle: title,
9806
- handleClose: handleClose,
9807
- handleSuccess: handleSuccess
9808
- });
9809
- }
9810
- return jsxs(WidgetWrapper, {
9811
- isOpen: true,
9812
- loadingTitle: title,
9813
- handleClose: handleClose,
9814
- handleSuccess: handleSuccess,
9815
- children: [step === WIDGET_STEP.ChooseAmount && creditConfigAccount && jsx(ChooseAmount$1, {
9816
- poolInfo: poolInfo,
9817
- creditConfigAccount: creditConfigAccount
9818
- }), step === WIDGET_STEP.Transfer && jsx(Transfer$1, {
9819
- poolInfo: poolInfo
9820
- }), step === WIDGET_STEP.Done && jsx(Done$1, {
9821
- poolInfo: poolInfo,
9822
- poolState: poolState,
9823
- handleAction: handleClose
9824
- }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
9825
- title: title,
9826
- errorReason: "Sorry there was an error",
9827
- errorMessage: errorMessage,
9828
- handleOk: handleClose
9829
- })]
9830
- });
9831
- }
9832
-
9833
- function ChooseAmount(_ref) {
9834
- let {
9835
- poolInfo,
9836
- creditStateAccount
9837
- } = _ref;
9838
- const dispatch = useAppDispatch();
9839
- const {
9840
- symbol,
9841
- decimals
9842
- } = poolInfo.underlyingMint;
9843
- const [currentAmount, setCurrentAmount] = useState(0);
9844
- const totalDueAmount = useMemo(() => Number(SolanaTokenUtils.formatUnits(creditStateAccount.creditRecord.totalDueAmount, decimals)), [creditStateAccount.creditRecord.totalDueAmount, decimals]);
9845
- const payoffAmount = useMemo(() => Number(SolanaTokenUtils.formatUnits(creditStateAccount.creditRecord.payoffAmount, decimals)), [creditStateAccount.creditRecord.payoffAmount, decimals]);
9846
- useEffect(() => {
9847
- setCurrentAmount(totalDueAmount);
9848
- dispatch(setPaymentAmount({
9849
- paymentAmount: totalDueAmount
9850
- }));
9851
- }, [dispatch, totalDueAmount]);
9852
- const handleChangeAmount = newAmount => {
9853
- setCurrentAmount(newAmount);
9854
- dispatch(setPaymentAmount({
9855
- paymentAmount: newAmount
9856
- }));
9857
- };
9858
- const handleAction = useCallback(() => {
9859
- dispatch(setStep(WIDGET_STEP.Transfer));
9860
- }, [dispatch]);
9861
- return jsx(InputAmountModal, {
9862
- title: "Make Payment",
9863
- subTitle: "Choose Amount",
9864
- tokenSymbol: symbol,
9865
- currentAmount: currentAmount,
9866
- handleChangeAmount: handleChangeAmount,
9867
- maxAmount: payoffAmount,
9868
- maxAmountText: "Pay Off",
9869
- infos: ["".concat(formatNumber(totalDueAmount.toFixed(0)), " Due")],
9870
- handleAction: handleAction,
9871
- actionText: "PAY"
9872
- });
9873
- }
9874
-
9875
- function Transfer(_ref) {
9876
- let {
9877
- poolInfo
9878
- } = _ref;
9879
- const dispatch = useAppDispatch();
9880
- const {
9881
- wallet,
9882
- publicKey
9883
- } = useWallet();
9884
- const {
9885
- connection
9886
- } = useConnection();
9887
- const [transaction, setTransaction] = useState();
9888
- const program = useHumaProgram(poolInfo.chainId);
9889
- const {
9890
- paymentAmount
9891
- } = useAppSelector(selectWidgetState);
9892
- const {
9893
- decimals
9894
- } = poolInfo.underlyingMint;
9895
- const handleSuccess = useCallback(() => {
9896
- dispatch(setStep(WIDGET_STEP.Done));
9897
- }, [dispatch]);
9898
- useEffect(() => {
9899
- async function getTx() {
9900
- if (!wallet || !publicKey || !connection || !paymentAmount) {
9901
- return;
9902
- }
9903
- const {
9904
- underlyingTokenATA
9905
- } = getTokenAccounts(poolInfo, publicKey);
9906
- const {
9907
- creditConfigAccount,
9908
- creditStateAccount
9909
- } = getCreditAccounts(poolInfo, publicKey);
9910
- const paymentAmountBN = SolanaTokenUtils.parseUnits(paymentAmount.toString(), decimals);
9911
- const tx = await program.methods.makePayment(paymentAmountBN).accountsPartial({
9912
- signer: publicKey,
9913
- humaConfig: poolInfo.humaConfig,
9914
- poolConfig: poolInfo.poolConfig,
9915
- poolState: poolInfo.poolState,
9916
- creditConfig: creditConfigAccount,
9917
- creditState: creditStateAccount,
9918
- poolAuthority: poolInfo.poolAuthority,
9919
- underlyingMint: poolInfo.underlyingMint.address,
9920
- poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount,
9921
- borrowerUnderlyingToken: underlyingTokenATA,
9922
- tokenProgram: TOKEN_2022_PROGRAM_ID
9923
- }).transaction();
9924
- setTransaction(tx);
9925
- }
9926
- getTx();
9927
- }, [connection, decimals, dispatch, paymentAmount, poolInfo, poolInfo.underlyingMint.address, poolInfo.underlyingMint.decimals, program.methods, publicKey, wallet]);
9928
- return jsx(SolanaTxSendModal, {
9929
- tx: transaction,
9930
- chainId: poolInfo.chainId,
9931
- handleSuccess: handleSuccess
9932
- });
9933
- }
9934
-
9935
- function Done(_ref) {
9936
- let {
9937
- poolInfo,
9938
- handleAction
9939
- } = _ref;
9940
- const {
9941
- solanaSignature
9942
- } = useAppSelector(selectWidgetState);
9943
- const {
9944
- symbol
9945
- } = poolInfo.underlyingMint;
9946
- const {
9947
- connection
9948
- } = useConnection();
9949
- const [tokensPaid, setTokensPaid] = useState(null);
9950
- useEffect(() => {
9951
- const fetchTokensPaid = async () => {
9952
- var _txData$meta, _txData$meta2;
9953
- if (!solanaSignature) {
9954
- return;
9955
- }
9956
- const txData = await connection.getTransaction(solanaSignature, {
9957
- maxSupportedTransactionVersion: 2
9958
- });
9959
- 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[1]) === null || _txData$meta === void 0 || (_txData$meta = _txData$meta.uiTokenAmount) === null || _txData$meta === void 0 ? void 0 : _txData$meta.uiAmount;
9960
- 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[1]) === null || _txData$meta2 === void 0 || (_txData$meta2 = _txData$meta2.uiTokenAmount) === null || _txData$meta2 === void 0 ? void 0 : _txData$meta2.uiAmount;
9961
- if (preTokenBalance && postTokenBalance) {
9962
- setTokensPaid(preTokenBalance - postTokenBalance);
9963
- }
9964
- };
9965
- fetchTokensPaid();
9966
- }, [connection, solanaSignature]);
9967
- const content = useMemo(() => {
9968
- if (tokensPaid !== null) {
9969
- return ["You successfully paid ".concat(formatNumber(tokensPaid), " ").concat(symbol, ".")];
9970
- }
9971
- return ['Your payment to the pool was successful'];
9972
- }, [tokensPaid, symbol]);
9973
- return jsx(SolanaTxDoneModal, {
9974
- handleAction: handleAction,
9975
- content: content,
9976
- chainId: poolInfo.chainId,
9977
- solanaSignature: solanaSignature,
9978
- buttonText: "DONE"
9979
- });
9980
- }
9981
-
9982
- function SolanaPayment(_ref) {
9983
- let {
9984
- poolInfo,
9985
- handleClose,
9986
- handleSuccess
9987
- } = _ref;
9988
- const dispatch = useDispatch();
9989
- const {
9990
- creditStateAccount,
9991
- loading: isLoadingBorrowerAccounts
9992
- } = useBorrowerAccounts(poolInfo.chainId, poolInfo.poolName);
9993
- const {
9994
- step,
9995
- errorMessage
9996
- } = useAppSelector(selectWidgetState);
9997
- useEffect(() => {
9998
- if (!step) {
9999
- dispatch(setStep(WIDGET_STEP.ChooseAmount));
10000
- }
10001
- }, [dispatch, step]);
10002
- const title = 'Make Payment';
10003
- if (isLoadingBorrowerAccounts) {
10004
- return jsx(WidgetWrapper, {
10005
- isOpen: true,
10006
- isLoading: true,
10007
- loadingTitle: title,
10008
- handleClose: handleClose,
10009
- handleSuccess: handleSuccess
10010
- });
10011
- }
10012
- return jsxs(WidgetWrapper, {
10013
- isOpen: true,
10014
- loadingTitle: title,
10015
- handleClose: handleClose,
10016
- handleSuccess: handleSuccess,
10017
- children: [step === WIDGET_STEP.ChooseAmount && creditStateAccount && jsx(ChooseAmount, {
10018
- poolInfo: poolInfo,
10019
- creditStateAccount: creditStateAccount
10020
- }), step === WIDGET_STEP.Transfer && jsx(Transfer, {
10021
- poolInfo: poolInfo
10022
- }), step === WIDGET_STEP.Done && jsx(Done, {
10023
- poolInfo: poolInfo,
10024
- handleAction: handleClose
10025
- }), step === WIDGET_STEP.Error && jsx(ErrorModal, {
10026
- title: title,
10027
- errorReason: "Sorry there was an error",
10028
- errorMessage: errorMessage,
10029
- handleOk: handleClose
10030
- })]
10031
- });
10032
- }
10033
-
10034
- function NotifiContextWrapper(_ref) {
10035
- let {
10036
- chainId,
10037
- children
10038
- } = _ref;
10039
- const {
10040
- account,
10041
- provider
10042
- } = useWeb3React();
10043
- const signer = useMemo(() => {
10044
- if (provider instanceof providers.JsonRpcProvider) {
10045
- return provider.getSigner();
10046
- }
10047
- return undefined;
10048
- }, [provider]);
10049
- if (account == null || signer == null || chainId == null) {
10050
- return null;
10051
- }
10052
- let cardId = '';
10053
- if (chainId === ChainEnum.Celo || chainId === ChainEnum.Alfajores) {
10054
- var _process$env$REACT_AP;
10055
- cardId = (_process$env$REACT_AP = process.env.REACT_APP_NOTIFI_CONFIG_ID_CELO) !== null && _process$env$REACT_AP !== void 0 ? _process$env$REACT_AP : '';
10056
- } else if (chainId === ChainEnum.Polygon || chainId === ChainEnum.Amoy) {
10057
- var _process$env$REACT_AP2;
10058
- cardId = (_process$env$REACT_AP2 = process.env.REACT_APP_NOTIFI_CONFIG_ID_POLYGON) !== null && _process$env$REACT_AP2 !== void 0 ? _process$env$REACT_AP2 : '';
10059
- } else if (chainId === ChainEnum.Scroll || chainId === ChainEnum.ScrollSepolia) {
10060
- var _process$env$REACT_AP3;
10061
- cardId = (_process$env$REACT_AP3 = process.env.REACT_APP_NOTIFI_CONFIG_ID_SCROLL) !== null && _process$env$REACT_AP3 !== void 0 ? _process$env$REACT_AP3 : '';
10062
- }
10063
- return jsx(NotifiContextProvider, {
10064
- tenantId: "humafinanceprod",
10065
- env: "Production",
10066
- signMessage: async message => {
10067
- const result = await signer.signMessage(message);
10068
- return arrayify(result);
10069
- },
10070
- walletPublicKey: account,
10071
- walletBlockchain: getBlockchainConfigFromChain(chainId),
10072
- cardId: cardId,
10073
- children: children
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 : '';
8572
+ }
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
10074
8584
  });
10075
8585
  }
10076
8586
 
@@ -10497,118 +9007,5 @@ function ReceivableBackedCreditLinePaymentWidgetV2(props) {
10497
9007
  });
10498
9008
  }
10499
9009
 
10500
- /**
10501
- * Object representing the props passed to Solana widgets
10502
- * @typedef {Object} SolanaWidgetProps
10503
- */
10504
-
10505
- function SolanaWidget(props) {
10506
- const {
10507
- children
10508
- } = props;
10509
- return jsx(ThemeProvider, {
10510
- theme: themeHuma,
10511
- children: jsx(Provider, {
10512
- store: store,
10513
- children: children
10514
- })
10515
- });
10516
- }
10517
-
10518
- /**
10519
- * Lend pool supply widget props for Solana pools
10520
- * @typedef {Object} SolanaLendSupplyWidgetProps
10521
- */
10522
-
10523
- /**
10524
- * Lend pool supply widget for Solana pools
10525
- *
10526
- * @param {SolanaLendSupplyWidgetProps} props - Widget props
10527
- */
10528
- function SolanaLendSupplyWidget(props) {
10529
- return jsx(SolanaWidget, {
10530
- ...props,
10531
- children: jsx(SolanaLendSupply, {
10532
- ...props
10533
- })
10534
- });
10535
- }
10536
-
10537
- /**
10538
- * Lend pool supply widget props for Solana pools
10539
- * @typedef {Object} SolanaLendAddRedemptionWidgetProps
10540
- */
10541
-
10542
- /**
10543
- * Lend pool supply widget for Solana pools
10544
- *
10545
- * @param {SolanaLendAddRedemptionWidgetProps} props - Widget props
10546
- */
10547
- function SolanaLendAddRedemptionWidget(props) {
10548
- return jsx(SolanaWidget, {
10549
- ...props,
10550
- children: jsx(SolanaLendAddRedemption, {
10551
- ...props
10552
- })
10553
- });
10554
- }
10555
-
10556
- /**
10557
- * Lend pool supply widget props for Solana pools
10558
- * @typedef {Object} SolanaLendCancelRedemptionWidgetProps
10559
- */
10560
-
10561
- /**
10562
- * Lend pool supply widget for Solana pools
10563
- *
10564
- * @param {SolanaLendCancelRedemptionWidgetProps} props - Widget props
10565
- */
10566
- function SolanaLendCancelRedemptionWidget(props) {
10567
- return jsx(SolanaWidget, {
10568
- ...props,
10569
- children: jsx(SolanaLendCancelRedemption, {
10570
- ...props
10571
- })
10572
- });
10573
- }
10574
-
10575
- /**
10576
- * Lend pool supply widget props for Solana pools
10577
- * @typedef {Object} SolanaBorrowWidgetProps
10578
- */
10579
-
10580
- /**
10581
- * Lend pool supply widget for Solana pools
10582
- *
10583
- * @param {SolanaBorrowWidgetProps} props - Widget props
10584
- */
10585
- function SolanaBorrowWidget(props) {
10586
- return jsx(SolanaWidget, {
10587
- ...props,
10588
- children: jsx(SolanaBorrow, {
10589
- ...props
10590
- })
10591
- });
10592
- }
10593
-
10594
- /**
10595
- * Lend pool supply widget props for Solana pools
10596
- * @typedef {Object} SolanaPaymentWidgetProps
10597
- */
10598
-
10599
- /**
10600
- * Lend pool supply widget for Solana pools
10601
- *
10602
- * @param {SolanaPaymentWidgetProps} props - Widget props
10603
- */
10604
- function SolanaPaymentWidget(props) {
10605
- return jsx(SolanaWidget, {
10606
- ...props,
10607
- children: jsx(SolanaPayment, {
10608
- ...props
10609
- })
10610
- });
10611
- }
10612
-
10613
- 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 };
9010
+ export { AddRedemptionWidgetV2, AutoPaybackWidgetV2, CancelRedemptionWidgetV2, CreditLineApproveWidget, CreditLineBorrowWidget, CreditLineBorrowWidgetV2, CreditLinePaymentWidget, CreditLinePaymentWidgetV2, InvoiceFactoringBorrowWidget, InvoiceFactoringPaymentWidget, LendSupplyWidget, LendSupplyWidgetV2, LendWithdrawWidget, LendWithdrawWidgetV2, NotifiContextWrapper, ReceivableBackedCreditLineBorrowWidgetV2, ReceivableBackedCreditLinePaymentWidgetV2, SuperfluidFactoringWidget, SupplyFirstLossCoverWidget };
10614
9011
  //# sourceMappingURL=index.js.map