{
  "version": 3,
  "sources": ["../../src/common/icon/circle_close.svg", "../../src/api/model/authError.ts", "../../src/api/model/bundle.ts", "../../src/utils/index.ts", "../../src/context/types.ts", "../../src/context/hooks/useLogin.ts", "../../src/context/index.tsx", "../../src/components/customRouter/index.tsx", "../../src/components/loading/index.tsx", "../../src/components/focusTrap/index.tsx", "../../src/context/hooks/useFocusTrap.ts", "../../src/components/particle-modal/index.tsx", "../../src/components/particle-drawer/index.tsx", "../../src/utils/isTelegramWebApp.ts", "../../src/components/icon/circle-close.tsx", "../../src/components/particle-modal/authCoreModalContainer.tsx", "../../src/locales/index.ts", "../../src/utils/authorizeUtils.ts", "../../src/api/getPublicAddress.ts", "../../src/utils/chain-utils.ts", "../../src/utils/common-utils.ts", "../../src/utils/sendAnalyticsActive.ts", "../../src/utils/version.ts", "../../src/context/providerInject.tsx", "../../src/utils/isSocialLogin.ts", "../../src/context/hooks/useAuthCore.ts", "../../src/common/config/index.ts", "../../src/context/hooks/useMessage.ts", "../../src/context/hooks/useConnect.ts", "../../src/context/hooks/useCustomize.ts", "../../src/context/hooks/useEthereum.ts", "../../src/utils/evmSendTransaction.ts", "../../src/utils/number-utils.ts", "../../src/utils/transaction-utils.ts", "../../src/context/evmProvider.ts", "../../src/context/hooks/useUserInfo.ts", "../../src/context/hooks/useIsMounted.ts", "../../src/context/hooks/useSolana.ts", "../../src/context/solanaWallet.ts", "../../src/context/web3ModalProvider.tsx", "../../src/repository/index.ts", "../../src/api/master-password.ts"],
  "sourcesContent": ["import * as React from \"react\";\nfunction MyComponent(props) {\n  return <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" viewBox=\"0 0 28 28\" {...props}><circle cx={14} cy={14} r={14} opacity={0.08} /><rect width={1.368} height={12.992} rx={0.684} transform=\"rotate(-45 16.924 -5.61)\" /><rect width={1.368} height={12.992} rx={0.684} transform=\"rotate(45 -2.24 26.54)\" /></svg>;\n}\nexport default MyComponent;", "export class AuthError {\n  constructor(public code: number, public message: string) {\n    this.code = code;\n    this.message = message;\n  }\n\n  public static feeError() {\n    return new AuthError(8101, 'maxFeePerGas cannot be less than maxPriorityFeePerGas');\n  }\n\n  public static userRejectedRequest() {\n    return new AuthError(4001, 'The user rejected the request');\n  }\n\n  public static userCancelOperation() {\n    return new AuthError(4011, 'The user canceled operation.');\n  }\n\n  public static unauthorized() {\n    return new AuthError(4100, 'The requested method and/or account has not been authorized by the user');\n  }\n\n  public static systemError() {\n    return new AuthError(8001, 'System Error');\n  }\n\n  public static paramsError() {\n    return new AuthError(8002, 'Param error, see doc for more info');\n  }\n\n  public static notLogin() {\n    return new AuthError(8005, 'Please connect first!');\n  }\n\n  public static walletNotCreated() {\n    return new AuthError(8006, 'Wallet not created');\n  }\n\n  public static authorizeError() {\n    return new AuthError(8007, 'Authorize error');\n  }\n\n  public static network() {\n    return new AuthError(8011, 'Network error');\n  }\n\n  public static unknown(message: string) {\n    return new AuthError(9000, message);\n  }\n\n  public static pending(method: string) {\n    return new AuthError(-32002, `Request of type ${method} already pending, please wait.`);\n  }\n}\n", "export interface AuthorizationOptions {\n  message?: string;\n  uniq?: boolean;\n}\n\nexport enum PromptSettingType {\n  /**\n   * \u4E0D\u63D0\u9192\n   */\n  none = 0,\n  /**\n   * \u9996\u6B21\u63D0\u9192\n   */\n  first = 1,\n  /**\n   * \u6BCF\u6B21\u90FD\u63D0\u9192\n   */\n  every = 2,\n  /**\n   * \u6BCF\u6B21\u90FD\u63D0\u9192\uFF0C\u4E14\u4E0D\u53EF\u8DF3\u8FC7\n   */\n  everyAndNotSkip = 3,\n}\n\nexport interface PromptSettingConfig {\n  promptPaymentPasswordSettingWhenSign?: PromptSettingType | boolean; // 0: \u4E0D\u63D0\u9192\uFF0C 1: \u9996\u6B21\u63D0\u9192\uFF0C 2: \u6BCF\u6B21\u90FD\u63D0\u9192, 3: \u6BCF\u6B21\u90FD\u63D0\u9192\uFF0C\u4E14\u4E0D\u53EF\u8DF3\u8FC7\n  promptMasterPasswordSettingWhenLogin?: PromptSettingType | boolean; // 0: \u4E0D\u63D0\u9192\uFF0C 1: \u9996\u6B21\u63D0\u9192\uFF0C 2: \u6BCF\u6B21\u90FD\u63D0\u9192\uFF0C 3: \u6BCF\u6B21\u90FD\u63D0\u9192\uFF0C\u4E14\u4E0D\u53EF\u8DF3\u8FC7\n}\n", "import type { CountryCode } from 'libphonenumber-js/max';\nimport { isValidPhoneNumber, parsePhoneNumberWithError } from 'libphonenumber-js/max';\nimport darkApple from '../common/images/apple_dark_icon.png';\nimport apple from '../common/images/apple_icon.png';\nimport discord from '../common/images/discord_icon.png';\nimport email from '../common/images/email_icon.png';\nimport facebook from '../common/images/facebook_icon.png';\nimport darkGithub from '../common/images/github_dark_icon.png';\nimport github from '../common/images/github_icon.png';\nimport google from '../common/images/google_icon.png';\nimport jwt from '../common/images/jwt_icon.png';\nimport linkedin from '../common/images/linkedin_icon.png';\nimport microsoft from '../common/images/microsoft_icon.png';\nimport passkeys from '../common/images/passkeys_icon.png';\nimport phone from '../common/images/phone_icon.png';\nimport twitch from '../common/images/twitch_icon.png';\nimport darkTwitter from '../common/images/twitter_dark_icon.png';\nimport twitter from '../common/images/twitter_icon.png';\nimport type { Theme } from '../types';\n\nexport const ipfsToSrc = (ipfs: string) => {\n  if (!ipfs || !ipfs.startsWith('ipfs://')) {\n    return ipfs || '';\n  }\n\n  return `https://ipfs.io/ipfs/${encodeURI(ipfs.slice(7))}`;\n};\n\nexport const EmailRegExp = /^\\w+([-+.]\\w+)*@[a-zA-Z0-9]+([.-][a-zA-Z0-9]+)*\\.[a-zA-Z0-9]+([.-][a-zA-Z0-9]+)*$/;\n\nexport const PhoneRegExp = /^[0-9]{4,16}$/;\n\nexport const PhoneE164Exp = /^\\+[1-9]\\d{4,14}$/;\n\nexport function isValidEmail(email?: string) {\n  if (email && EmailRegExp.test(email)) {\n    return email;\n  }\n}\n\nexport function isPhoneValid(phone: string, regionCode: string): boolean {\n  if (!phone || phone.length < 5) {\n    return false;\n  }\n  const countryCode = regionCode?.toUpperCase() as CountryCode;\n  const result = isValidPhoneNumber(phone, countryCode);\n  return result;\n}\n\nexport const isValidE164PhoneNumber = (phone: string | undefined) => {\n  if (phone && PhoneE164Exp.test(phone)) {\n    try {\n      if (isValidPhoneNumber(phone)) {\n        const e164Phone = parsePhoneNumberWithError(phone).format('E.164');\n        return e164Phone;\n      }\n    } catch (e) {\n      // ignore\n    }\n  }\n};\n\nexport function isValidCaptcha(code?: string) {\n  return code && code.match(/^\\d{6}$/);\n}\n\nexport const isAutoFocusSupported = () => {\n  return true;\n};\n\nexport const isMobile = () => {\n  if (isServer()) return false;\n  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n};\n\nexport const isServer = () => typeof window === 'undefined';\n\nexport const isClient = () => typeof window !== 'undefined';\n\nexport const getLoginLogos = (theme?: Theme): Record<string, string> => {\n  const twitterIcon = theme === 'dark' ? darkTwitter : twitter;\n  const githubIcon = theme === 'dark' ? darkGithub : github;\n  const appleIcon = theme === 'dark' ? darkApple : apple;\n  return {\n    email,\n    phone,\n    google,\n    facebook,\n    twitter: twitterIcon,\n    linkedin,\n    github: githubIcon,\n    microsoft,\n    apple: appleIcon,\n    discord,\n    twitch,\n    jwt,\n    passkeys,\n  };\n};\n", "import type { AuthType, ERC4337Options, ServerError, UserInfo } from '@particle-network/auth-core';\nimport type { WalletCustomStyle, WalletOption } from '@particle-network/wallet';\nimport type { Chain as ViemChain } from 'viem/chains';\nimport type { PromptSettingConfig } from '../api/model/bundle';\nimport type { CurrencyUnit, Theme } from '../types';\n\nexport type ViewType = 'desktop' | 'mobile';\n\nexport interface NavigateOptions {\n  replace?: boolean;\n  back?: boolean;\n  state?: any;\n}\n\nexport interface IAuthCoreModal {\n  rootModalContainer: HTMLDivElement | null;\n  rootBody: HTMLDivElement | null;\n  particleModalVisible: boolean;\n  viewType: ViewType;\n  closable?: boolean;\n}\n\nexport interface ICustomRouter {\n  path: string;\n  replace?: boolean;\n  state?: any;\n  history?: any[];\n  children?: React.ReactNode;\n}\n\nexport enum AuthCoreModalEvent {\n  Login = 'login', // \u767B\u5F55\n  LoginSuccess = 'loginSuccess', // \u767B\u5F55\u6210\u529F\n  LoginFail = 'loginFail', // \u767B\u5F55\u5931\u8D25\n  SignResponse = 'signResponse', // \u7B7E\u540D\u54CD\u5E94\n}\n\nexport type Language = 'en' | 'zh-cn' | 'ja' | 'ko' | 'zh-tw';\n\nexport interface ThemeStyle {\n  primaryBtnColor?: string;\n  primaryBtnBackgroundColor?: string;\n  secondaryBtnColor?: string;\n  secondaryBtnBackgroundColor?: string;\n  textColor?: string;\n  secondaryTextColor?: string;\n  themeBackgroundColor?: string;\n  iconBorderColor?: string;\n  accentColor?: string;\n  inputBackgroundColor?: string;\n  inputBorderColor?: string;\n  inputPlaceholderColor?: string;\n  cardBorderColor?: string;\n  cardUnclickableBackgroundColor?: string;\n  cardUnclickableBorderColor?: string;\n  cardDividerColor?: string;\n  tagBackgroundColor?: string;\n  modalBackgroundColor?: string;\n  tipsBackgroundColor?: string;\n}\n\nexport interface CustomStyle {\n  logo?: string;\n  projectName?: string;\n  subtitle?: string;\n  modalWidth?: number;\n  modalHeight?: number;\n  zIndex?: number;\n  primaryBtnBorderRadius?: number | string;\n  modalBorderRadius?: number | string;\n  cardBorderRadius?: number | string;\n  fontFamily?: string;\n  theme?: {\n    dark?: ThemeStyle;\n    light?: ThemeStyle;\n  };\n}\n\nexport interface AuthCoreModalOptions {\n  projectId: string;\n  clientKey: string;\n  appId: string;\n  authTypes?: AuthType[];\n  themeType?: Theme;\n  fiatCoin?: CurrencyUnit;\n  erc4337?: ERC4337Options;\n  language?: Language;\n  promptSettingConfig?: PromptSettingConfig;\n  customStyle?: CustomStyle;\n  chains: readonly [ViemChain, ...ViemChain[]];\n  wallet?:\n    | (Omit<WalletOption, 'language' | 'erc4337' | 'customStyle'> & {\n        customStyle?: Omit<WalletCustomStyle, 'supportChains'>;\n      })\n    | false;\n  supportEIP6963?: boolean; // defalut true\n  web3Modal?: any; // optional: add to support @web3modal/ethers\n}\n\nexport type ConnectionStatus = 'loading' | 'connecting' | 'connected' | 'disconnected';\n\nexport type SocialConnectCallback = {\n  onSuccess?: (info: UserInfo) => void;\n  onError?: (error: ServerError | Error) => void;\n};\n\nexport interface OpenBuyOptions {\n  network?: string;\n  fiatCoin?: string;\n  cryptoCoin?: string;\n  fiatAmt?: number;\n  fixFiatCoin?: boolean;\n  fixCryptoCoin?: boolean;\n  fixFiatAmt?: boolean;\n  walletAddress?: string;\n}\n\nexport type OpenBuyOptionsKeys = keyof OpenBuyOptions;\n", "import { RecordType } from '@particle-network/analytics';\nimport type {\n  Authorization,\n  Chain,\n  ConnectParam,\n  ConnectWithSocialParam,\n  SocialAuthType,\n} from '@particle-network/auth-core';\nimport { analyticsRecord, connect, thirdpartyAuth } from '@particle-network/auth-core';\nimport base64url from 'base64url';\nimport { useCallback } from 'react';\nimport { useCustomNavigate, useParticleAuth } from '..';\nimport { isPromptSetMasterPassword } from '../../api/master-password';\nimport { AuthPage } from '../../components/customRouter';\nimport { sendAnalyticsActive } from '../../utils/sendAnalyticsActive';\nimport { AuthCoreModalEvent } from '../types';\n\nconst useLogin = () => {\n  const navigate = useCustomNavigate();\n  const { loginSuccessRedirectToApp, modalOptions, events } = useParticleAuth();\n  const loginHandler = useCallback(\n    async (data: ConnectParam, emitError: boolean = true) => {\n      try {\n        if (!data.chain) {\n          data.chain = modalOptions.chains[0];\n        }\n        const userInfo = await connect(data);\n        const { token = '', ...restInfo } = userInfo;\n        sendAnalyticsActive('login', restInfo);\n\n        analyticsRecord({\n          // eslint-disable-next-line camelcase\n          record_type: RecordType.PAGE_LOGIN_BUTTON_CLICK_SUCCESS, // \u767B\u5F55\u6210\u529F\n        });\n        console.log('login successful, check master password');\n\n        if (userInfo.security_account?.has_set_master_password) {\n          console.log('login successful, start verify master password');\n          navigate(AuthPage.MasterPasswordVerify, {\n            replace: true,\n            state: {\n              loginVerifyMasterPassword: true,\n            },\n          });\n        } else {\n          if (isPromptSetMasterPassword(modalOptions.promptSettingConfig?.promptMasterPasswordSettingWhenLogin)) {\n            console.log('login successful, popup set master password');\n            navigate(AuthPage.MasterPasswordPrompt, {\n              replace: true,\n            });\n          } else {\n            loginSuccessRedirectToApp();\n          }\n        }\n      } catch (error) {\n        analyticsRecord({\n          // eslint-disable-next-line camelcase\n          record_type: RecordType.PAGE_LOGIN_BUTTON_CLICK_FAILURE, // \u767B\u5F55\u5931\u8D25\n        });\n        if (emitError) {\n          console.log('login failed, emit LoginFail event', error);\n          events.emit(AuthCoreModalEvent.LoginFail, error);\n        } else {\n          throw error;\n        }\n      }\n    },\n    [modalOptions.promptSettingConfig, navigate, loginSuccessRedirectToApp, modalOptions?.wallet]\n  );\n\n  const socialAuthLogin = useCallback(\n    async (\n      options: ConnectWithSocialParam & {\n        authorization?: Authorization;\n        chain?: Chain;\n      }\n    ) => {\n      try {\n        const appState = base64url(\n          JSON.stringify({\n            chain: options.chain,\n            authorization: options.authorization,\n            socialType: options.socialType,\n          })\n        );\n        await thirdpartyAuth({\n          authType: options.socialType as SocialAuthType,\n          appState,\n          prompt: options.prompt,\n        });\n      } catch (error) {\n        events.emit(AuthCoreModalEvent.LoginFail, error);\n      }\n    },\n    [events]\n  );\n\n  return { loginHandler, socialAuthLogin };\n};\n\nexport default useLogin;\n", "import type { LoginAuthorization, SolanaAuthorization, UserInfo } from '@particle-network/auth-core';\nimport {\n  AuthCoreEvent,\n  EvmRpcMethod,\n  SolanaRpcMethod,\n  connect,\n  getConnectCaptcha,\n  getUserInfo,\n  hasPaymentPassword,\n  isConnected,\n  particleAuth,\n  syncUserInfo,\n} from '@particle-network/auth-core';\nimport type { WalletEntryPlugin } from '@particle-network/wallet';\nimport { useAsyncEffect, useSetState, useSize } from 'ahooks';\nimport base58 from 'bs58';\nimport { EventEmitter } from 'events';\nimport get from 'lodash/get';\nimport React, { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport root from 'react-shadow';\nimport { AuthError } from '../api/model/authError';\nimport CustomRouter, { AuthPage } from '../components/customRouter';\nimport FocusTrap from '../components/focusTrap';\nimport ParticleModal from '../components/particle-modal';\nimport AuthCoreModalContainer from '../components/particle-modal/authCoreModalContainer';\nimport { dictionaries } from '../locales';\nimport type { AccountTipModalProps } from '../pages/account/accountTipModal';\nimport type { PaymentVerify } from '../pages/account/paymentVerifyModal';\nimport type { WrongPasswordInfo } from '../pages/account/wrongPasswordModal';\nimport { isServer } from '../utils';\nimport authorizeUtils from '../utils/authorizeUtils';\nimport { isSolana } from '../utils/chain-utils';\nimport { toHexPrefixString } from '../utils/common-utils';\nimport { sendAnalyticsActive } from '../utils/sendAnalyticsActive';\nimport { getVersion } from '../utils/version';\nimport ProviderInject from './providerInject';\nimport type {\n  AuthCoreModalOptions,\n  ConnectionStatus,\n  IAuthCoreModal,\n  ICustomRouter,\n  Language,\n  NavigateOptions,\n  SocialConnectCallback,\n  ViewType,\n} from './types';\nimport { AuthCoreModalEvent } from './types';\nimport Web3ModalProvider from './web3ModalProvider';\n\nconst IframeWalletPlugin = React.lazy(() => import('./iframeWalletPlugin'));\nconst AccountTipModal = React.lazy(() => import('../pages/account/accountTipModal'));\nconst PaymentVerifyModal = React.lazy(() => import('../pages/account/paymentVerifyModal'));\nconst WrongPasswordModal = React.lazy(() => import('../pages/account/wrongPasswordModal'));\nconst SelectSecurityAccount = React.lazy(() => import('../pages/account/selectSecurityAccount'));\n\nexport const defaultModalOptions: Partial<AuthCoreModalOptions> = {\n  themeType: 'light',\n  language: 'en',\n  fiatCoin: 'USD',\n  promptSettingConfig: {\n    promptPaymentPasswordSettingWhenSign: 1,\n    promptMasterPasswordSettingWhenLogin: 0,\n  },\n  customStyle: {\n    modalWidth: 400,\n    modalHeight: 650,\n  },\n  wallet: { visible: true, themeType: 'light' },\n};\n\ninterface GlobalState {\n  connectionStatus: ConnectionStatus;\n  setConnectionStatus: (status: ConnectionStatus) => void;\n  userInfo?: UserInfo;\n  modalOptions: AuthCoreModalOptions;\n  setModalOptions: (options: any) => void;\n  showSelectSecurityAccount: (display: boolean, state?: any) => void;\n  setWrongPassword: (info: WrongPasswordInfo) => void;\n  setPaymentVerify: (props: PaymentVerify) => void;\n  showAccountTipModal: (props: AccountTipModalProps) => void;\n  setPaymentPassword: () => void;\n  loginSuccessRedirectToApp: () => void;\n  events: EventEmitter;\n  authCoreModal: IAuthCoreModal;\n  setAuthCoreModal: (params: any) => void;\n  customRouter: ICustomRouter;\n  setCustomRouter: (params: any) => void;\n  customNavigate: (url: string | number, options?: NavigateOptions) => void;\n  setLoginAuthorization: (loginAuthorization?: LoginAuthorization) => void;\n  authCoreModalClose: () => void;\n  socialConnectCallback?: SocialConnectCallback;\n  setSocialConnectCallback: (callback?: SocialConnectCallback) => void;\n  walletEntryPlugin?: WalletEntryPlugin;\n  lang: string;\n  setLang: (value: Language) => void;\n}\n\nexport const GlobalContext = createContext<GlobalState | null>(null);\n\nconst events = new EventEmitter();\nevents.setMaxListeners(100);\n\nexport const AuthCoreContextProvider = (props: { options: AuthCoreModalOptions; children: React.ReactNode }) => {\n  const [userInfo, _setUserInfo] = useState<UserInfo | undefined>();\n  const userInfoRef = useRef<UserInfo | undefined>(userInfo);\n\n  const setUserInfo = (info: UserInfo | undefined) => {\n    _setUserInfo(info);\n    userInfoRef.current = info;\n  };\n\n  const [lang, setLang] = useState<Language>('en');\n  const rootRef = React.useRef<HTMLDivElement>(null);\n\n  const [styles, setStyles] = useState<any>({\n    styleList: [\n      {\n        name: 'antStyle',\n        loadStyle: () => import('../../../../node_modules/antd/dist/antd.css'),\n        styleContent: '',\n      },\n      {\n        name: 'globalStyle',\n        loadStyle: () => import('../common/style/global.scss'),\n        styleContent: '',\n      },\n      {\n        name: 'scrollStyle',\n        loadStyle: () => import('../common/style/scroll.scss'),\n        styleContent: '',\n      },\n      {\n        name: 'themeStyle',\n        loadStyle: () => import('../common/style/theme.scss'),\n        styleContent: '',\n      },\n    ],\n  });\n\n  const [modalOptions, setModalOptions] = useSetState<AuthCoreModalOptions>(props.options);\n\n  const [selectSecurityAccount, setSelectSecurityAccount] = useState(false);\n\n  const [verifySecurityAccountState, setVerifySecurityAccountState] = useState<any>();\n\n  const [wrongPassword, setWrongPassword] = useState<WrongPasswordInfo>({ visible: false });\n\n  const [accountTipModal, setAccountTipModal] = useState<AccountTipModalProps>({\n    visible: false,\n  });\n\n  const initParticleAuthRef = React.useRef<any>(false);\n\n  const [paymentVerify, setPaymentVerify] = useState<PaymentVerify>({ visible: false });\n\n  const [loginAuthorization, _setLoginAuthorization] = useState<LoginAuthorization>();\n\n  const loginAuthorizationRef = useRef<any>(null);\n\n  const setLoginAuthorization = (data?: LoginAuthorization) => {\n    _setLoginAuthorization(data);\n    loginAuthorizationRef.current = data;\n  };\n\n  const [connectionStatus, setConnectionStatus] = useState<ConnectionStatus>('loading');\n\n  const showSelectSecurityAccount = (display: boolean, state?: any) => {\n    setVerifySecurityAccountState(state);\n    setSelectSecurityAccount(display);\n  };\n\n  const showAccountTipModal = (props: AccountTipModalProps) => {\n    setAccountTipModal(props);\n  };\n\n  const loadStyles = () => {\n    const fns = styles.styleList.map((item: any) => {\n      return item?.loadStyle?.();\n    });\n    Promise.all(fns).then((styles: any) => {\n      const styleList = styles.map((item: any) => {\n        return {\n          styleContent: item.default,\n        };\n      });\n      setStyles({\n        styleList,\n      });\n    });\n  };\n\n  const [customRouter, setCustomRouter] = useSetState<ICustomRouter>({ path: '/' });\n  const [authCoreModal, setAuthCoreModal] = useSetState<IAuthCoreModal>({\n    viewType: 'mobile' as ViewType,\n    particleModalVisible: false,\n    rootModalContainer: null,\n    rootBody: null,\n    closable: true,\n  });\n\n  const customNavigate = useCallback(\n    (url: string | number, options?: NavigateOptions) => {\n      if (typeof url === 'string' && url !== '/') {\n        url = url.replace(/^\\//, '');\n      }\n\n      console.log('customNavigate', url, options);\n\n      let { history } = customRouter;\n\n      if (!history) {\n        history = [];\n      }\n\n      if (options?.back === true) {\n        if (\n          typeof url === 'string' &&\n          !!history.find((item: any) => item.path.replace(/^\\//, '') === (url as string).replace(/^\\//, ''))\n        ) {\n          url = history.findIndex((item) => item.path === url) - history.length + 1;\n        }\n      }\n\n      if (typeof url === 'string') {\n        if (url !== AuthPage.Login && url !== AuthPage.Index && !isConnected()) {\n          throw AuthError.notLogin();\n        }\n\n        const { replace = false, state = {} } = options || {};\n\n        if (history.length && replace) {\n          history.pop();\n        }\n\n        history.push({\n          path: url,\n          state,\n          updateAt: new Date().getTime(),\n        });\n\n        setCustomRouter({\n          path: url,\n          replace,\n          state,\n          history,\n        });\n      } else if (typeof url === 'number' && history.length > 0) {\n        for (let i = 0; i < Math.abs(url); i++) {\n          history.pop();\n        }\n\n        if (history.length === 0) {\n          setAuthCoreModal({\n            particleModalVisible: false,\n          });\n          return;\n        }\n\n        const route = history[history.length - 1];\n        setCustomRouter({\n          path: route?.path,\n          replace: false,\n          state: route?.state,\n          history,\n        });\n      }\n    },\n    [customRouter, setAuthCoreModal, setCustomRouter]\n  );\n\n  const setPaymentPassword = useCallback(() => {\n    if (userInfo?.security_account?.has_set_payment_password) {\n      return;\n    }\n    if (!userInfo?.security_account?.email && !userInfo?.security_account?.phone) {\n      customNavigate('/account/bind', {\n        state: {\n          accountType: userInfo?.email ? 'phone' : 'email',\n          showSwitch: true,\n          redirectUrl: '/account/set-password',\n        },\n      });\n      return;\n    }\n    if (userInfo?.security_account?.email && userInfo?.security_account?.phone) {\n      showSelectSecurityAccount(true);\n    } else {\n      customNavigate('/account/set-password', {\n        state: {\n          account: userInfo?.security_account?.email || userInfo?.security_account?.phone,\n        },\n      });\n    }\n  }, [userInfo, customNavigate]);\n\n  const loginSuccessRedirectToApp = useCallback(() => {\n    console.log('login success', 'redirectToApp');\n\n    const userInfo = userInfoRef.current;\n    const loginAuthorization = loginAuthorizationRef.current;\n\n    let authorizeResult;\n    if (loginAuthorization && authorizeUtils.isNeedAuthorize(loginAuthorization)) {\n      if (hasPaymentPassword()) {\n        if (isSolana(loginAuthorization.chain)) {\n          const message = (loginAuthorization.authorization as SolanaAuthorization).message;\n          customNavigate(AuthPage.SolanaSign, {\n            state: {\n              method: SolanaRpcMethod.signMessage,\n              param: base58.decode(message),\n              loginAuthorizationSign: true,\n            },\n          });\n        } else {\n          authorizeUtils\n            .generateMessage(loginAuthorization.chain, modalOptions.erc4337)\n            .then((message) => {\n              customNavigate(AuthPage.EvmSign, {\n                state: {\n                  method: loginAuthorization.authorization.uniq\n                    ? EvmRpcMethod.personalSignUniq\n                    : EvmRpcMethod.personalSign,\n                  param: toHexPrefixString(message),\n                  loginAuthorizationSign: true,\n                },\n              });\n            })\n            .catch((error) => {\n              events.emit(AuthCoreModalEvent.LoginFail, error);\n            });\n        }\n        return;\n      } else {\n        authorizeUtils\n          .authorize(loginAuthorization, modalOptions.erc4337)\n          .then((result) => {\n            events.emit(AuthCoreModalEvent.LoginSuccess, {\n              ...userInfo,\n              authorization: result,\n            });\n          })\n          .catch((error) => {\n            events.emit(AuthCoreModalEvent.LoginFail, error);\n          });\n      }\n    } else {\n      events.emit(AuthCoreModalEvent.LoginSuccess, {\n        ...(userInfo ?? getUserInfo()),\n        authorization: authorizeResult,\n      });\n    }\n  }, [customNavigate, userInfo, modalOptions.erc4337, loginAuthorization]);\n\n  const authCoreModalClose = () => {\n    if (events.listenerCount(AuthCoreModalEvent.SignResponse) > 0) {\n      events.emit(AuthCoreModalEvent.SignResponse, {\n        error: AuthError.userRejectedRequest(),\n      });\n    }\n\n    if (events.listenerCount(AuthCoreModalEvent.LoginSuccess)) {\n      if (customRouter?.path === AuthPage.Login || !userInfo) {\n        events.emit(AuthCoreModalEvent.LoginFail, AuthError.userCancelOperation());\n      } else {\n        events.emit(AuthCoreModalEvent.LoginSuccess, userInfo);\n      }\n    }\n\n    setAuthCoreModal({\n      particleModalVisible: false,\n    });\n  };\n\n  const getPageHTML = () => {\n    let htmlContent = rootRef.current?.outerHTML || '';\n    const path = rootRef.current?.getAttribute('data-path');\n    htmlContent = Buffer.from(htmlContent).toString('base64');\n    console.log('getPageHTML', path, htmlContent.substring(0, 30) + '...');\n    return htmlContent;\n  };\n\n  const fontStyle = useMemo(() => {\n    let style = '';\n    if (!isServer()) {\n      const bodyFontFamily = window.getComputedStyle(window.document.body).fontFamily;\n      const fontFamily =\n        props.options?.customStyle?.fontFamily ||\n        bodyFontFamily ||\n        '\"PingFang SC\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", sans-serif';\n\n      style = ` \n                            .particle-auth-core-shadow-root {\n                                --auth-core-font-family: ${fontFamily};\n                            }\n                        `;\n    }\n\n    return style;\n  }, [props.options?.customStyle?.fontFamily]);\n\n  // \u81EA\u5B9A\u4E49 \u4E3B\u9898\n  const customThemeStyle = useMemo(() => {\n    const themeType = modalOptions.themeType;\n    const customStyle = modalOptions.customStyle || {};\n\n    const theme = {\n      ...Object.fromEntries(\n        Object.keys(customStyle || {})\n          .filter((key) => key !== 'theme')\n          .map((key) => {\n            return [key, (customStyle as any)?.[key] || ''];\n          })\n      ),\n\n      ...(customStyle?.theme?.[themeType === 'light' ? 'light' : 'dark'] || {}),\n    };\n\n    const styleContent = Object.keys(theme)\n      .filter((key) => key !== 'fontFamily')\n      .map((key) => {\n        const name = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n        let value = theme[key as keyof typeof theme];\n        if (!isNaN(Number(value))) {\n          value = value + 'px';\n        }\n        return `--${name}:${value};`;\n      })\n      .join('\\n');\n\n    if (themeType === 'dark') {\n      return `.particle-auth-core-shadow-root.dark{\n                    ${styleContent}\n                }`;\n    }\n\n    return `.particle-auth-core-shadow-root{\n            ${styleContent}\n        }`;\n  }, [modalOptions.themeType, modalOptions.customStyle]);\n\n  useEffect(() => {\n    setModalOptions({\n      ...defaultModalOptions,\n      ...props.options,\n      promptSettingConfig: {\n        ...defaultModalOptions.promptSettingConfig,\n        ...props.options.promptSettingConfig,\n      },\n      customStyle: {\n        ...defaultModalOptions.customStyle,\n        ...props.options.customStyle,\n      },\n    });\n  }, [props.options, setModalOptions]);\n\n  useEffect(() => {\n    // \u5F39\u51FA\u7A97\u53E3\u540E \u9501\u5B9Abody \u6EDA\u52A8\n    if (!document.querySelector('.particle-auth-core-body-style')) {\n      const style = document.createElement('style');\n      style.classList.add('particle-auth-core-body-style');\n      const styleContent = `.particle-modal-lock {\n                overflow: hidden !important;\n            }`;\n      style.innerHTML = styleContent;\n      document.head.appendChild(style);\n    }\n\n    if (authCoreModal.particleModalVisible) {\n      document.body.classList.add('particle-modal-lock');\n      const rootBody = authCoreModal.rootModalContainer?.querySelector(\n        '.root-particle-modal-container .ant-drawer-body,.root-particle-modal-container .ant-modal-body'\n      ) as HTMLDivElement;\n      setAuthCoreModal({\n        rootBody,\n      });\n    } else {\n      // \u5173\u95EDrootModal\u5F39\u7A97\u540E\uFF0C\u5EF6\u65F6\u6E05\u7A7A\u8DEF\u7531\n      setTimeout(() => {\n        setCustomRouter({\n          path: '/',\n          history: [],\n        });\n      }, 100);\n      document.body.classList.remove('particle-modal-lock');\n    }\n  }, [authCoreModal.particleModalVisible, authCoreModal.rootModalContainer]);\n\n  const bodySze = useSize(isServer() ? null : document.body);\n\n  useEffect(() => {\n    // \u8BBE\u7F6EviewType \u4E3A\u5168\u5C40\u53D8\u91CF desktop | mobile\n    let viewType: ViewType = 'mobile';\n    if (document.body.clientWidth >= 600) {\n      viewType = 'desktop';\n    }\n    setAuthCoreModal({\n      viewType,\n    });\n  }, [bodySze]);\n\n  useEffect(() => {\n    if (customRouter?.path && customRouter?.path != '/') {\n      // \u8DEF\u7531 path \u4E0D\u4E3A / \u65F6\uFF0C\u6253\u5F00rootModal\u5F39\u7A97\n      setAuthCoreModal({\n        particleModalVisible: true,\n      });\n    }\n  }, [customRouter?.path]);\n\n  useEffect(() => {\n    // \u8BBE\u7F6E\u6A21\u6001\u6846\u7684\u5BBD\u5EA6\u548C\u9AD8\u5EA6\uFF0C\u54CD\u5E94\u79FB\u52A8\u7AEF\u89C6\u56FE\n    if (rootRef.current) {\n      const minWidth = 300;\n      const minHeight = 500;\n      let modalWidth = Math.max(minWidth, Number(modalOptions.customStyle?.modalWidth));\n      let modalHeight = Math.max(minHeight, Number(modalOptions.customStyle?.modalHeight));\n\n      if (authCoreModal.viewType == 'mobile') {\n        modalWidth = document.body.clientWidth;\n        modalHeight = document.body.clientHeight * 0.86;\n      }\n      const vm = modalWidth / 100;\n      rootRef.current.style.setProperty('--vw', vm + 'px');\n      rootRef.current.style.setProperty('--doc-height', modalHeight + 'px');\n      rootRef.current.style.setProperty('--doc-width', modalWidth + 'px');\n    }\n  }, [\n    rootRef.current,\n    authCoreModal.viewType,\n    modalOptions.customStyle?.modalWidth,\n    modalOptions.customStyle?.modalHeight,\n  ]);\n\n  useEffect(() => {\n    setTimeout(() => {\n      setLang(modalOptions.language || 'en');\n    });\n  }, [modalOptions.language]);\n\n  useEffect(() => {\n    const onMasterPasswordChange = () => {\n      customNavigate(AuthPage.MasterPasswordVerify);\n    };\n    window?.particleAuth?.on(AuthCoreEvent.MasterPasswordChanged, onMasterPasswordChange);\n    return () => {\n      window?.particleAuth?.off(AuthCoreEvent.MasterPasswordChanged, onMasterPasswordChange);\n    };\n  }, [customRouter.history, customNavigate]);\n\n  useEffect(() => {\n    const userInfoChanged = (userInfo: UserInfo) => {\n      setUserInfo(userInfo);\n    };\n    const onDisconnect = (error?: Error) => {\n      setUserInfo(undefined);\n      if (events.listenerCount(AuthCoreModalEvent.SignResponse) > 0) {\n        // \u5982\u679C\u6709\u76D1\u542CsignResponse\u4E8B\u4EF6\uFF0C\u8BF4\u660E\u662F\u5728\u7B7E\u540D\u4E2D\u65AD\uFF0C\u9700\u8981\u89E6\u53D1signResponse\u4E8B\u4EF6\n        events.emit(AuthCoreModalEvent.SignResponse, {\n          error: error || AuthError.notLogin(),\n        });\n      }\n      setAuthCoreModal({\n        particleModalVisible: false,\n      });\n    };\n\n    window?.particleAuth?.on(AuthCoreEvent.UserInfoChanged, userInfoChanged);\n    window?.particleAuth?.on(AuthCoreEvent.ParticleAuthDisconnect, onDisconnect);\n    return () => {\n      window?.particleAuth?.off(AuthCoreEvent.UserInfoChanged, userInfoChanged);\n      window?.particleAuth?.off(AuthCoreEvent.ParticleAuthDisconnect, onDisconnect);\n    };\n  }, []);\n\n  if (!initParticleAuthRef.current || particleAuth.chains != modalOptions.chains) {\n    // authCore \u521D\u59CB\u5316\n    particleAuth.init({\n      projectId: modalOptions.projectId || props.options.projectId,\n      clientKey: modalOptions.clientKey || props.options.clientKey,\n      appId: modalOptions.appId || props.options.appId,\n      chains: modalOptions.chains,\n    });\n    const info = getUserInfo();\n    setUserInfo(info);\n    initParticleAuthRef.current = true;\n\n    if (info) {\n      const { token = '', ...restInfo } = info;\n      sendAnalyticsActive('open', restInfo);\n    }\n  }\n\n  useEffect(() => {\n    if (isConnected()) {\n      syncUserInfo().catch((e) => console.error('syncUserInfo', e));\n    }\n    loadStyles();\n\n    if (!props?.options?.chains.length) {\n      throw new Error('Auth Core: Please set chains in options');\n    }\n  }, []);\n\n  if (!isServer()) {\n    // @ts-ignore\n    window.__getConnectCaptcha = getConnectCaptcha;\n    // @ts-ignore\n    window.__connect = connect;\n    // @ts-ignore\n    window.__getUserInfo = getUserInfo;\n    // @ts-ignore\n    window.__getPageHTML = getPageHTML;\n    // @ts-ignore\n    window.__navigate = customNavigate;\n    // @ts-ignore\n    window.__particleAuthCoreModal__ = rootRef?.current;\n  }\n\n  useEffect(() => {\n    console.log('\uD83D\uDE80 ~ AuthCoreContextProvider ~ connectionStatus:', connectionStatus);\n  }, [connectionStatus]);\n\n  const [socialConnectCallback, setSocialConnectCallback] = useState<SocialConnectCallback>();\n  const [walletEntryPlugin, setWalletEntryPlugin] = useState<WalletEntryPlugin>();\n\n  useAsyncEffect(async () => {\n    if (modalOptions.wallet !== false) {\n      const { walletEntryPlugin } = await import('@particle-network/wallet');\n      setWalletEntryPlugin(walletEntryPlugin);\n    }\n  }, [modalOptions.wallet]);\n\n  return (\n    <GlobalContext.Provider\n      value={{\n        connectionStatus,\n        setConnectionStatus,\n        userInfo,\n        modalOptions,\n        setModalOptions,\n        showSelectSecurityAccount,\n        setWrongPassword,\n        setPaymentVerify,\n        showAccountTipModal,\n        setPaymentPassword,\n        loginSuccessRedirectToApp,\n        events,\n        authCoreModal,\n        setAuthCoreModal,\n        customRouter,\n        setCustomRouter,\n        customNavigate,\n        setLoginAuthorization,\n        authCoreModalClose,\n        socialConnectCallback,\n        setSocialConnectCallback,\n        walletEntryPlugin,\n        lang,\n        setLang,\n      }}\n    >\n      <ProviderInject>{props.children}</ProviderInject>\n\n      {isServer() ? (\n        <div></div>\n      ) : (\n        <root.div mode='closed'>\n          <div\n            id='particle-auth-core-modal'\n            className={`particle-auth-core-shadow-root ${modalOptions.themeType}`}\n            data-path={customRouter?.path}\n            data-auth-core-modal-version={getVersion()}\n            data-auth-core-version={particleAuth.version}\n            ref={rootRef}\n            onClick={(event) => {\n              event.stopPropagation();\n            }}\n          >\n            {/* <KeyboardProvider container={rootRef.current as HTMLElement}> */}\n            <FocusTrap>\n              <style data-name='fontStyle'>{fontStyle}</style>\n              {!!styles.styleList[0].styleContent &&\n                styles.styleList.map((item: any, index: number) => {\n                  return (\n                    <style data-name={item.name} data-index={index} key={index}>\n                      {item.styleContent}\n                    </style>\n                  );\n                })}\n              <style data-name='customTheme'>{customThemeStyle as unknown as string}</style>\n\n              {authCoreModal.rootModalContainer && (\n                <ParticleModal\n                  visible={authCoreModal.particleModalVisible}\n                  closable={authCoreModal.closable}\n                  onClose={() => {\n                    authCoreModalClose();\n                  }}\n                  className='root-particle-modal-container'\n                  modalProps={{\n                    footer: null,\n                    width: parseInt(modalOptions.customStyle?.modalWidth as unknown as string),\n                    height: parseInt(modalOptions.customStyle?.modalHeight as unknown as string),\n                    forceRender: true,\n                    destroyOnClose: true,\n                    style: {\n                      maxWidth: modalOptions.customStyle?.modalWidth,\n                    },\n                    zIndex: modalOptions.customStyle?.zIndex || 99999,\n                  }}\n                  drawerProps={{\n                    height: '86%',\n                    closable: false,\n                    forceRender: true,\n                    destroyOnClose: true,\n                    push: false,\n                    zIndex: modalOptions.customStyle?.zIndex || 99999,\n                  }}\n                >\n                  <CustomRouter\n                    path={customRouter?.path}\n                    state={customRouter?.state}\n                    replace={customRouter?.replace}\n                    children={customRouter?.children}\n                  />\n                </ParticleModal>\n              )}\n\n              <React.Suspense>\n                <IframeWalletPlugin />\n                <SelectSecurityAccount visible={selectSecurityAccount} state={verifySecurityAccountState} />\n                <AccountTipModal modal={accountTipModal} />\n                <PaymentVerifyModal props={paymentVerify} />\n                <WrongPasswordModal info={wrongPassword} />\n              </React.Suspense>\n              <AuthCoreModalContainer data-ref='rootModalContainer' setAuthCoreModal={setAuthCoreModal} />\n              {props.options.web3Modal && <Web3ModalProvider web3Modal={props.options.web3Modal} />}\n            </FocusTrap>\n            {/* </KeyboardProvider> */}\n          </div>\n        </root.div>\n      )}\n    </GlobalContext.Provider>\n  );\n};\n\nexport const useParticleAuth = () => {\n  const context = useContext(GlobalContext);\n  if (!context) {\n    throw new Error('Auth Core hooks must used in AuthCoreContextProvider');\n  }\n  return context;\n};\n\nexport const useAuthCoreModal = () => {\n  const { authCoreModal, setAuthCoreModal, authCoreModalClose } = useParticleAuth();\n  return {\n    authCoreModalClose,\n    authCoreModal,\n    setAuthCoreModal,\n  };\n};\n\nexport const useCustomRouter = () => {\n  const { customRouter, setCustomRouter } = useParticleAuth();\n  return {\n    customRouter,\n    setCustomRouter,\n  };\n};\n\nexport const useCustomNavigate = () => {\n  const { customNavigate } = useParticleAuth();\n\n  return customNavigate;\n};\n\nexport const useSupportedChains = () => {\n  const { modalOptions } = useParticleAuth();\n  return modalOptions?.chains || [];\n};\n\nexport const useModalOptions = () => {\n  const { modalOptions, setModalOptions } = useParticleAuth();\n  return {\n    modalOptions,\n    setModalOptions,\n  };\n};\n\nexport const useEvents = () => {\n  const { events } = useParticleAuth();\n  return { events };\n};\n\nexport const useTranslation = () => {\n  const { lang } = useParticleAuth();\n  const tempData = (dictionaries[lang.toLowerCase() as keyof typeof dictionaries] || dictionaries.en)();\n  type ValueType = Awaited<typeof tempData>;\n  const [data, setData] = useState<ValueType>({} as ValueType);\n\n  useEffect(() => {\n    async function getTranslations() {\n      const targetTranslations = await tempData;\n\n      setData(targetTranslations);\n    }\n\n    getTranslations();\n  }, [lang]);\n\n  const getTranslation = useCallback(\n    (key: string) => {\n      const keyItems = key.split('.');\n      return get(data, keyItems, '');\n    },\n    [data]\n  );\n\n  return { ...data, t: getTranslation };\n};\n", "import { isConnected } from '@particle-network/auth-core';\nimport qs from 'qs';\nimport React, { useMemo } from 'react';\nimport type { ICustomRouter } from '../../context/types';\nimport ParticleLoading from '../loading';\n\nexport enum AuthPage {\n  Index = 'index',\n  Login = 'login',\n  EvmSign = 'evm-chain/sign',\n  SolanaSign = 'solana/sign',\n  LoginAccount = 'login-account',\n  AccountSecurity = 'account/security',\n  MasterPasswordVerify = 'account/master-password/verify',\n  MasterPasswordPrompt = 'account/master-password/prompt',\n}\n\ninterface IPage {\n  name?: AuthPage;\n  path?: string;\n  component: React.LazyExoticComponent<any>;\n}\n\nconst pages: IPage[] = [\n  {\n    name: AuthPage.Index,\n    component: React.lazy(() => import('../../pages/index/index')),\n  },\n  {\n    name: AuthPage.Login,\n    component: React.lazy(() => import('../../pages/login')),\n  },\n  {\n    path: 'account/security',\n    component: React.lazy(() => import('../../pages/account/security')),\n  },\n  {\n    name: AuthPage.LoginAccount,\n    path: 'login-account',\n    component: React.lazy(() => import('../../pages/loginAccount/index')),\n  },\n  {\n    path: 'manageDevices/deviceList',\n    component: React.lazy(() => import('../../pages/manageDevices/deviceList/index')),\n  },\n  {\n    path: 'manageDevices/deviceDetails',\n    component: React.lazy(() => import('../../pages/manageDevices/deviceDetails/index')),\n  },\n  {\n    name: AuthPage.EvmSign,\n    component: React.lazy(() => import('../../pages/sign/index')),\n  },\n  {\n    name: AuthPage.SolanaSign,\n    component: React.lazy(() => import('../../pages/sign/components/info-sign')),\n  },\n  {\n    path: 'account/bind',\n    component: React.lazy(() => import('../../pages/account/accountBind/index')),\n  },\n  {\n    path: 'account/verify',\n    component: React.lazy(() => import('../../pages/account/accountVerify/index')),\n  },\n  {\n    path: 'login-account',\n    component: React.lazy(() => import('../../pages/loginAccount/index')),\n  },\n  {\n    path: 'manageDevices/deviceDetails',\n    component: React.lazy(() => import('../../pages/manageDevices/deviceDetails/index')),\n  },\n  {\n    path: 'account/master-password',\n    component: React.lazy(() => import('../../pages/account/setMasterPassword/index')),\n  },\n  {\n    path: 'account/master-password/description',\n    component: React.lazy(() => import('../../pages/account/masterPasswordDescription/index')),\n  },\n  {\n    path: AuthPage.MasterPasswordVerify,\n    component: React.lazy(() => import('../../pages/account/masterPasswordVerify/index')),\n  },\n  {\n    path: AuthPage.MasterPasswordPrompt,\n    component: React.lazy(() => import('../../pages/account/masterPasswordModal/index')),\n  },\n  {\n    path: 'account/master-password/change',\n    component: React.lazy(() => import('../../pages/account/masterPasswordChange/index')),\n  },\n  {\n    path: 'account/set-password',\n    component: React.lazy(() => import('../../pages/account/setPaymentPassword/index')),\n  },\n  {\n    path: 'account/change-password',\n    component: React.lazy(() => import('../../pages/account/changePaymentPassword/index')),\n  },\n  {\n    path: 'login-account/bind',\n    component: React.lazy(() => import('../../pages/loginAccountBind/index')),\n  },\n  {\n    path: 'login-account/bind-loading',\n    component: React.lazy(() => import('../../pages/account/loginAccountBindLoading/index')),\n  },\n];\n\nconst CustomRouter = (props: ICustomRouter) => {\n  const path = useMemo(() => {\n    let path = props.path?.split('?')?.[0].replace(/^\\//, '');\n    if (path == '' || path == '/') {\n      path = AuthPage.Index;\n    }\n    if (path !== AuthPage.Login && !isConnected() && path !== AuthPage.Index) {\n      path = AuthPage.Login;\n    }\n    return path;\n  }, [props.path]);\n\n  const queryString = useMemo(() => {\n    let queryString = props.path?.split('?')?.[1];\n    if (path !== AuthPage.Login && !isConnected() && path !== AuthPage.Index) {\n      queryString = '';\n    }\n    return queryString;\n  }, [props.path, path]);\n\n  const state = useMemo(() => {\n    return {\n      ...(props.state || {}),\n      ...qs.parse(queryString),\n    };\n  }, [props.state, queryString]);\n\n  const Comp = useMemo(() => {\n    let Comp = pages.find((item: IPage) => item.name === path || item.path === path);\n    if (!Comp) {\n      if (path) {\n        console.log('Not Found', path);\n      }\n      Comp = pages[0];\n    }\n    return Comp;\n  }, [path]);\n\n  return (\n    <div data-path={path} data-state={qs.stringify(state)} key={path}>\n      <React.Suspense\n        fallback={\n          <div className='lazy-loaing-container'>\n            <ParticleLoading />\n          </div>\n        }\n      >\n        <Comp.component {...state} children={props.children} />\n      </React.Suspense>\n    </div>\n  );\n};\n\nexport default CustomRouter;\n", "import React from 'react';\nimport styles from './index.less';\n\nconst ParticleLoading = () => {\n  return (\n    <>\n      <style>{styles as unknown as string}</style>\n      <div className='loading-content'>\n        <div className='lds-default'>\n          <div></div>\n          <div></div>\n          <div></div>\n          <div></div>\n          <div></div>\n          <div></div>\n          <div></div>\n          <div></div>\n          <div></div>\n          <div></div>\n          <div></div>\n          <div></div>\n        </div>\n        <div className='power-text'>Powered by</div>\n        <div className='logo-text'>Particle Network</div>\n      </div>\n    </>\n  );\n};\n\nexport default ParticleLoading;\n", "import React, { useEffect } from 'react';\nimport useFocusTrap from '../../context/hooks/useFocusTrap';\n\nexport default function FocusTrap(props: any) {\n  const elRef = useFocusTrap();\n\n  useEffect(() => {\n    if (!elRef.current) return;\n    elRef.current.focus({ preventScroll: true });\n  }, []);\n\n  return (\n    <div ref={elRef} tabIndex={0}>\n      {props.children}\n    </div>\n  );\n}\n", "import { useEffect, useRef } from 'react';\n\nconst KEYCODE_TAB = 9;\n\nexport default function useFocusTrap() {\n  const elRef = useRef<any>(null);\n\n  function handleFocus(e: any) {\n    if (!elRef.current) return;\n    const focusableEls = elRef.current.querySelectorAll(`\n        a[href]:not(:disabled),\n        button:not(:disabled),\n        textarea:not(:disabled),\n        input[type=\"text\"]:not(:disabled),\n        input[type=\"radio\"]:not(:disabled),\n        input[type=\"checkbox\"]:not(:disabled),\n        select:not(:disabled)\n      `),\n      firstFocusableEl = focusableEls[0],\n      lastFocusableEl = focusableEls[focusableEls.length - 1];\n\n    const isTabPressed = e.key === 'Tab' || e.keyCode === KEYCODE_TAB;\n\n    if (!isTabPressed) {\n      return;\n    }\n\n    if (e.shiftKey) {\n      /* shift + tab */ if (document.activeElement === firstFocusableEl) {\n        lastFocusableEl.focus();\n        e.preventDefault();\n      }\n    } /* tab */ else {\n      if (document.activeElement === lastFocusableEl) {\n        firstFocusableEl.focus();\n        e.preventDefault();\n      }\n    }\n  }\n\n  useEffect(() => {\n    if (elRef.current) {\n      elRef.current.addEventListener('keydown', handleFocus);\n      elRef.current.focus({ preventScroll: true });\n    }\n    return () => {\n      if (elRef.current) {\n        elRef.current.removeEventListener('keydown', handleFocus);\n      }\n    };\n  }, []);\n\n  return elRef;\n}\n", "import { Modal } from 'antd';\nimport React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react';\n\nimport { useAuthCoreModal } from '../../context';\nimport ParticleDrawer from '../particle-drawer';\nimport styles from './index.less';\n\ninterface IProps {\n  children?: React.ReactNode;\n  visible?: boolean;\n  containerSelector?: any;\n  title?: string | any;\n  modalProps?: any;\n  locked?: 'modal' | 'drawer';\n  drawerProps?: any;\n  className?: string;\n  closable?: boolean;\n  onOpen?: () => void;\n  onClose?: () => void;\n}\nconst ParticleModal = forwardRef((props: IProps, ref) => {\n  const { children, title, drawerProps = {}, modalProps = {} } = props;\n  const { authCoreModal } = useAuthCoreModal();\n  const [visible, setVisible] = useState(props.visible || false);\n\n  const onClose = () => {\n    setVisible(false);\n    props.onClose && props.onClose();\n  };\n\n  const onOpen = () => {\n    setVisible(true);\n    props.onOpen && props.onOpen();\n  };\n\n  useImperativeHandle(ref, () => ({\n    setVisible,\n    onOpen,\n    onClose,\n  }));\n\n  useEffect(() => {\n    setVisible(props.visible ?? false);\n  }, [props.visible]);\n\n  if (modalProps?.style?.top) {\n    modalProps.style.top = '';\n  }\n\n  return (\n    <>\n      <style>{styles as unknown as string}</style>\n      {authCoreModal.viewType == 'desktop' || props.locked === 'modal' ? (\n        <Modal\n          title={title}\n          open={visible}\n          okText=''\n          wrapClassName={`w-model-container ${props.className || ''}`}\n          centered={true}\n          maskClosable={false}\n          getContainer={() => {\n            return props.containerSelector\n              ? document.querySelector(props.containerSelector)\n              : authCoreModal.rootModalContainer || document.querySelector('body');\n          }}\n          onCancel={() => {\n            onClose();\n          }}\n          closable={props.closable ?? true}\n          // closeIcon={<MIcon name=\"icon_63\" size={30} />}\n          {...modalProps}\n          styles={{\n            ...modalProps.styles,\n          }}\n        >\n          {children}\n        </Modal>\n      ) : (\n        <ParticleDrawer\n          className={`w-drawer-container ${props.className || ''}`}\n          closable={props.closable ?? true}\n          onClose={onClose}\n          visible={visible}\n          placement='bottom'\n          getContainer={() => {\n            return props.containerSelector\n              ? document.querySelector(props.containerSelector)\n              : authCoreModal.rootModalContainer || document.querySelector('body');\n          }}\n          extra={<>{/* <MIcon name=\"icon_63\" size={30} onClick={() => onClose()} /> */}</>}\n          title={title}\n          {...drawerProps}\n        >\n          {children}\n        </ParticleDrawer>\n      )}\n    </>\n  );\n});\n\nexport default ParticleModal;\n", "import { Drawer } from 'antd';\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { useAuthCoreModal } from '../../context';\nimport { isMobile } from '../../utils';\nimport { isTelegramWebApp } from '../../utils/isTelegramWebApp';\nimport CircleClose from '../icon/circle-close';\nimport styles from './index.less';\n\ninterface IProps {\n  children?: React.ReactNode;\n  onClose: () => void;\n  visible: boolean;\n  title?: string;\n  [key: string]: any;\n}\nconst ParticleDrawer = (props: IProps) => {\n  const { title, children, onClose, visible, ...rest } = props;\n  const [mobile, setMobile] = useState<boolean>(isMobile());\n  const { authCoreModal } = useAuthCoreModal();\n  const dropDownRef = useRef({\n    isDown: false,\n    moveY: 0,\n  });\n  const drawerContentRef = useRef<HTMLDivElement>(null);\n\n  const className = useMemo(() => {\n    const classNames = [props.className, `particle-${mobile ? 'mobile' : 'pc'}-drawer`, 'particle-drawer-container'];\n    return classNames.join(' ');\n  }, [props.className, mobile]);\n\n  const isScroll = (target: HTMLElement) => {\n    let parentElement: HTMLElement | null = target;\n    let flag = false;\n    while (parentElement) {\n      parentElement = parentElement.parentElement;\n      if (parentElement?.classList.contains('ant-drawer-body')) {\n        break;\n      }\n      if (parentElement?.scrollTop) {\n        flag = true;\n        break;\n      }\n    }\n    return flag;\n  };\n\n  const drawerContainer = useMemo(() => {\n    return props.containerSelector\n      ? document.querySelector(props.containerSelector)\n      : authCoreModal.rootModalContainer || document.querySelector('body');\n  }, [props.containerSelector, authCoreModal.rootModalContainer]);\n\n  useEffect(() => {\n    if (!mobile || !drawerContentRef?.current || isTelegramWebApp()) {\n      return;\n    }\n    const touchstartHandler = (e: TouchEvent) => {\n      if (e.type === 'touchstart' && isScroll(e.target as HTMLElement)) {\n        return;\n      }\n      const clientY = e.touches[0].clientY;\n      e.stopPropagation();\n      dropDownRef.current.isDown = true;\n      dropDownRef.current.moveY = clientY;\n    };\n\n    if (visible) {\n      drawerContentRef?.current?.addEventListener('touchstart', touchstartHandler);\n    }\n\n    if (!visible) {\n      drawerContentRef?.current?.removeEventListener('touchstart', touchstartHandler);\n      dropDownRef.current.isDown = false;\n      dropDownRef.current.moveY = 0;\n    }\n\n    return () => {\n      drawerContentRef?.current?.removeEventListener('touchstart', touchstartHandler);\n      dropDownRef.current.isDown = false;\n      dropDownRef.current.moveY = 0;\n    };\n  }, [visible, mobile, drawerContentRef?.current]);\n\n  useEffect(() => {\n    if (!mobile || !drawerContentRef?.current || isTelegramWebApp()) {\n      return;\n    }\n    const touchendHandler = (e: TouchEvent) => {\n      if (dropDownRef.current.isDown) {\n        e.stopPropagation();\n        dropDownRef.current.isDown = false;\n      }\n    };\n\n    const touchmoveHandler = (e: TouchEvent) => {\n      e.preventDefault();\n      const clientY = e.touches[0].clientY;\n      if (dropDownRef.current.isDown && clientY - dropDownRef.current.moveY > 60) {\n        onClose();\n      }\n    };\n\n    drawerContentRef?.current?.addEventListener('touchend', touchendHandler);\n\n    drawerContentRef?.current?.addEventListener('touchmove', touchmoveHandler, { passive: true });\n\n    return () => {\n      drawerContentRef?.current?.removeEventListener('touchend', touchendHandler);\n      drawerContentRef?.current?.removeEventListener('touchmove', touchmoveHandler);\n    };\n  }, [mobile, drawerContentRef?.current]);\n\n  useEffect(() => {\n    const resizeHandler = () => {\n      setMobile(isMobile());\n    };\n    window.addEventListener('resize', resizeHandler);\n    return () => {\n      window.removeEventListener('resize', resizeHandler);\n    };\n  }, []);\n\n  return (\n    <Drawer\n      onClose={onClose}\n      open={visible}\n      {...rest}\n      className={className}\n      destroyOnClose={false}\n      getContainer={() => {\n        return rest?.getContainer?.() || drawerContainer;\n      }}\n    >\n      <div className='particle-drawer-content' ref={drawerContentRef}>\n        <style>{styles as unknown as string}</style>\n        <CircleClose\n          data-mobile={mobile && !isTelegramWebApp()}\n          className='close-icon'\n          onClick={() => {\n            onClose();\n          }}\n        />\n        <div className='particle-close-btn' data-mobile={mobile && !isTelegramWebApp()}></div>\n        {title && <div className='particle-title'>{title}</div>}\n        {children}\n      </div>\n    </Drawer>\n  );\n};\n\nexport default ParticleDrawer;\n", "export const isTelegramWebApp = () => {\n  return typeof window !== 'undefined' && Boolean(window.Telegram);\n};\n", "import Icon from '@ant-design/icons';\nimport React from 'react';\nimport styles from './index.less';\n\nconst CircleClose = ({ className = '', ...others }) => {\n  const svg = require('../../common/icon/circle_close.svg').default;\n  return (\n    <>\n      <style>{styles as unknown as string}</style>\n      <Icon\n        className={className ? `circle-close-icon ${className}` : 'circle-close-icon'}\n        //@ts-ignore\n        component={svg}\n        {...others}\n      />\n    </>\n  );\n};\n\nexport default CircleClose;\n", "import React, { useEffect, useRef } from 'react';\n\nconst AuthCoreModalContainer = ({ setAuthCoreModal }: any) => {\n  const rootModalContainerRef = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    setAuthCoreModal({\n      rootModalContainer: rootModalContainerRef.current,\n    });\n  }, [setAuthCoreModal]);\n\n  return <div ref={rootModalContainerRef}></div>;\n};\n\nexport default AuthCoreModalContainer;\n", "export const dictionaries = {\n  en: () => import('./en.json').then((module) => module.default),\n  'en-us': () => import('./en.json').then((module) => module.default),\n  ja: () => import('./jp.json').then((module) => module.default),\n  'ja-jp': () => import('./jp.json').then((module) => module.default),\n  ko: () => import('./kr.json').then((module) => module.default),\n  'ko-kr': () => import('./kr.json').then((module) => module.default),\n  'zh-tw': () => import('./tc.json').then((module) => module.default),\n  'zh-cn': () => import('./zh.json').then((module) => module.default),\n  zh: () => import('./zh.json').then((module) => module.default),\n};\n", "import {\n  getLatestAuthType,\n  getUserInfo,\n  isNullish,\n  requireNotNullish,\n  type Chain,\n  type ERC4337Options,\n  type LoginAuthorization,\n  type SolanaAuthorization,\n} from '@particle-network/auth-core';\nimport base58 from 'bs58';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getEVMPublicAddress } from '../api/getPublicAddress';\nimport { isSolana } from './chain-utils';\nimport { shortString, toHexPrefixString } from './common-utils';\n\nexport type AuthorizationResult = {\n  message: string;\n  signature: string;\n};\n\n//https://eips.ethereum.org/EIPS/eip-4361\nconst signInEthereumMessage = `{0} wants you to sign in with your Ethereum account:\n{1}\n\n{2}\n\nURI: https://{3}/\nVersion: 1\nChain ID: {4}\nNonce: {5}\nIssued At: {6}\nExpiration Time: {7}`;\n\nconst authorizeUtils = {\n  isNeedAuthorize({ authorization, chain }: LoginAuthorization): boolean {\n    if (!authorization) {\n      return false;\n    }\n    if (chain.name.toLowerCase() === 'solana') {\n      return (\n        'message' in authorization &&\n        !isNullish(authorization.message) &&\n        'uniq' in authorization &&\n        !isNullish(authorization.uniq)\n      );\n    } else {\n      return 'uniq' in authorization && !isNullish(authorization.uniq);\n    }\n  },\n\n  async generateMessage(chain: Chain, erc4337?: ERC4337Options): Promise<string> {\n    const domain = location.host;\n    const userInfo = getUserInfo() as any;\n    const address = isSolana(chain)\n      ? window.particleAuth?.solana.selectedAddress\n      : await getEVMPublicAddress({\n          ...erc4337,\n          chainId: chain.id,\n        });\n    const authType = getLatestAuthType() || 'email';\n    const account = userInfo[authType] || userInfo[`${authType}_email`] || shortString(userInfo[`${authType}_id`]);\n    const statement = `${authType.titleCase()}: ${account}`;\n    const nonce = uuidv4().replace(/-/g, '');\n    const issuedAt = new Date().toISOString();\n    // 15\u5206\u949F\u6709\u6548\u671F\n    const expirationTime = new Date(Date.now() + 10 * 60 * 1000).toISOString();\n    return signInEthereumMessage.format(\n      domain,\n      address || '',\n      statement,\n      domain,\n      chain.id.toString(),\n      nonce,\n      issuedAt,\n      expirationTime\n    );\n  },\n\n  async authorize(\n    { authorization, chain }: LoginAuthorization,\n    erc4337?: ERC4337Options\n  ): Promise<AuthorizationResult> {\n    const message = isSolana(chain)\n      ? (authorization as SolanaAuthorization).message\n      : toHexPrefixString(await this.generateMessage(chain, erc4337));\n    const particleAuth = requireNotNullish(window.particleAuth);\n    let signature;\n    if (isSolana(chain)) {\n      const { signature: result } = await particleAuth.solana.signMessage(base58.decode(message));\n      signature = Buffer.from(result).toString('base64');\n    } else {\n      signature = await particleAuth.ethereum.signMessage(message);\n    }\n    return {\n      message,\n      signature,\n    };\n  },\n};\n\nexport default authorizeUtils;\n", "import {\n  EvmRpcMethod,\n  getEVMChainInfoById,\n  getSmartAccountAddress,\n  tronAddressFromHex,\n  type ERC4337Options,\n} from '@particle-network/auth-core';\nimport { isTron } from '../utils/chain-utils';\n\ntype Options = {\n  chainId?: number;\n  method?: EvmRpcMethod;\n  erc4337?: ERC4337Options;\n};\n\nexport const getEVMPublicAddress = async ({ chainId, erc4337, method }: Options): Promise<string> => {\n  const id = chainId || Number(window.particleAuth?.ethereum.chainId);\n  let address;\n  if (erc4337 && method !== EvmRpcMethod.ethSendTransaction) {\n    address = await getSmartAccountAddress(erc4337);\n  } else {\n    if (typeof window !== 'undefined') {\n      address = window.particleAuth?.ethereum.selectedAddress;\n    }\n  }\n\n  if (isTron(getEVMChainInfoById(id))) {\n    address = tronAddressFromHex(address);\n  }\n  return address || '';\n};\n", "import { isHexString } from '@ethereumjs/util';\nimport type { Chain } from '@particle-network/auth-core';\nimport {\n  defaultTokenIcon,\n  getChainIcon,\n  getChainInfo,\n  getEVMChainInfoById,\n  getSolanaChainInfoById,\n  tronAddressFromHex,\n} from '@particle-network/auth-core';\nimport type { Chain as ViemChain } from 'viem/chains';\n\nexport const getChainDisplayName = (chain: ViemChain | Chain) => {\n  const chainInfo = getChainInfo(chain);\n  if (!chainInfo) {\n    return '';\n  }\n  let cnahnIname = '';\n  if (!chainInfo.testnet && !chainInfo.name.toLowerCase().includes('mainnet')) {\n    cnahnIname = chainInfo.name + ' Mainnet';\n  } else {\n    cnahnIname = chainInfo.name;\n  }\n  return cnahnIname.replace('BNB Smart Chain', 'BNB Chain').replace('Binance Smart Chain', 'BNB Chain');\n};\n\nexport function getNativeSymbol(chain: Chain): string {\n  return (getChainInfo(chain)?.nativeCurrency?.symbol || '').replace('tBNB', 'BNB');\n}\n\nexport function getEvmChain(id: number) {\n  return getEVMChainInfoById(id);\n}\n\nexport function getSolanaChain(id: number) {\n  return getSolanaChainInfoById(id);\n}\n\nexport function formatAddress(address: string, chain: Chain): string {\n  if (isTron(chain) && isHexString(address)) {\n    return tronAddressFromHex(address);\n  }\n  return address;\n}\n\nexport function isSolana(chain: Chain) {\n  return chain.name.toLowerCase() === 'solana';\n}\n\nexport function isEvm(chain: Chain) {\n  return chain.name.toLowerCase() !== 'solana';\n}\n\nexport function isTron(chain?: Chain) {\n  return chain && chain.name.toLowerCase() === 'tron';\n}\n\nexport const formatPng = (src = '') => {\n  if (!src) return src;\n  return src + (src.includes('?') ? '&' : '?') + 'x-oss-process=image/format,png';\n};\n\nexport function getNativeTokenIcon(chain?: Chain): string {\n  if (chain) {\n    const chainInfo = getChainInfo(chain);\n    if (chainInfo) {\n      const symbol = chainInfo?.nativeCurrency.symbol?.toLowerCase() || '';\n      if (['bnb', 'btc', 'eth', 'stbtc', 'usdc', 'usdt'].includes(symbol)) {\n        return `https://static.particle.network/chains/evm/symbol/${symbol}.png`;\n      } else {\n        return getChainIcon(chainInfo);\n      }\n    } else {\n      return defaultTokenIcon;\n    }\n  }\n  return defaultTokenIcon;\n}\n", "import type { PrefixedHexString, ToBufferInputTypes } from '@ethereumjs/util';\nimport { bufferToHex, isHexString, toBuffer } from '@ethereumjs/util';\nimport { isSocialAuthType } from '@particle-network/auth-core';\nimport type BN from 'bn.js';\nimport { isValidPhoneNumber, parsePhoneNumber } from 'libphonenumber-js/max';\n\nexport function shortString(str: any): string {\n  if (Array.isArray(str)) {\n    str = '[' + str.toString() + ']';\n  }\n  if (str) {\n    if (typeof str.toString === 'function') {\n      str = str.toString();\n    }\n    if (str.length <= 10) {\n      return str;\n    }\n    return `${str.slice(0, 5)}...${str.slice(str.length - 5, str.length)}`;\n  }\n  return '';\n}\n\nexport const displayEmail = (email: string): string => {\n  if (!email) {\n    return '';\n  }\n  const parts = email.split('@');\n  if (parts[0].length <= 3) {\n    return `${parts[0]}****@${parts[1]}`;\n  } else {\n    return `${parts[0].slice(0, 3)}****@${parts[1]}`;\n  }\n};\n\nexport const displayPhone = (phone: string) => {\n  if (!phone) {\n    return '';\n  }\n  if (isValidPhoneNumber(phone)) {\n    const phoneNumber = parsePhoneNumber(phone);\n    const countryCode = phoneNumber.countryCallingCode;\n    const code = phoneNumber.nationalNumber.toString();\n\n    if (code && countryCode) {\n      const count = code.length >= 6 ? 3 : Math.floor(code.length / 2);\n      return `+${countryCode} ${code.slice(0, count)}****${code.slice(-count)}`;\n    }\n  }\n  return phone;\n};\n\ndeclare global {\n  interface String {\n    format(...params: string[]): string;\n    titleCase(): string;\n  }\n}\n\n/*eslint no-extend-native: [\"error\", { \"exceptions\": [\"String\"] }]*/\nString.prototype.format = function (...params: string[]): string {\n  const args = params;\n  return this.replace(/{(\\d+)}/g, function (match, number) {\n    return typeof args[number] != 'undefined' ? args[number] : match;\n  });\n};\n\nString.prototype.titleCase = function (): string {\n  if (this.length === 0) {\n    return '';\n  } else if (this.length === 1) {\n    return this.toUpperCase();\n  }\n\n  return this.slice(0, 1).toUpperCase() + this.slice(1);\n};\n\nexport function assert(condition: any, message?: any) {\n  if (!condition) {\n    throw new Error(message || 'Assertion failed');\n  }\n}\n\nexport function isSocialLogin(type: string): boolean {\n  return isSocialAuthType(type);\n}\n\n/**\n * Returns `true` if the given value is nullish.\n *\n * @param value - The value being checked.\n * @returns Whether the value is nullish.\n */\nexport function isNullish(value: any) {\n  return value === null || value === undefined;\n}\n\n/**\n * Convert a value to a Buffer.\n *\n * @param value - The value to convert to a Buffer.\n * @returns The given value as a Buffer.\n */\nexport function legacyToBuffer(value: ToBufferInputTypes) {\n  return typeof value === 'string' && !isHexString(value) ? Buffer.from(value) : toBuffer(value);\n}\n\nexport function toHexPrefixString(value: ToBufferInputTypes): PrefixedHexString {\n  if (typeof value === 'string' && isHexString(value)) {\n    return value;\n  } else {\n    return bufferToHex(legacyToBuffer(value));\n  }\n}\n\n/**\n * Convert BN to 0x-prefixed hex string.\n */\nexport function bnToHex(value: BN): PrefixedHexString {\n  return `0x${value.toString(16)}`;\n}\n\nexport function popupwindow(url: string, title: string, w: number, h: number): Window | null {\n  const left = screen.width / 2 - w / 2;\n  const top = screen.height / 2 - h / 2;\n  return window.open(\n    url,\n    title,\n    'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=' +\n      w +\n      ', height=' +\n      h +\n      ', top=' +\n      top +\n      ', left=' +\n      left\n  );\n}\n\nexport function popupwindowNoLimit(url: string, title: string, w: number, h: number): Window | null {\n  const left = screen.width / 2 - w / 2;\n  const top = screen.height / 2 - h / 2;\n  return window.open(url, title, 'width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);\n}\n\nexport function isInIframe(): boolean {\n  return window.location !== window.parent.location;\n}\n\n/**\n * \u7A97\u53E3\u4FE1\u606F\u4F20\u9012\n */\nexport function authPostMessage(key: string, data: any) {\n  data = {\n    ...data,\n    name: key,\n    _: Date.now(),\n  };\n  try {\n    window.parent.postMessage(data, '*');\n  } catch (error) {\n    // pass\n  }\n  try {\n    window.opener.postMessage(data, '*');\n  } catch (error) {\n    // pass\n  }\n  try {\n    window.opener.parent.postMessage(data, '*');\n  } catch (error) {\n    // pass\n  }\n  sessionStorage.setItem(key, JSON.stringify(data));\n  localStorage.setItem(key, JSON.stringify(data));\n}\n\n/**\n * \u53E3\u4FE1\u606F\u63A5\u6536\n * @param key\n * @param cb\n * @returns\n */\nexport function authReceiveMessage(key: string, cb: any) {\n  const messageHandler = (event: any) => {\n    if (event instanceof MessageEvent || event instanceof StorageEvent) {\n      let data;\n      if (event instanceof MessageEvent) {\n        data = event.data;\n      } else {\n        // @ts-ignore\n        data = JSON.parse(event.newValue);\n      }\n\n      if (data?.name === key) {\n        const newData = {\n          ...data,\n          messageType: event instanceof MessageEvent ? 'message' : 'storage',\n        };\n        cb(newData);\n      }\n    }\n  };\n\n  window.addEventListener('message', messageHandler);\n  window.addEventListener('storage', messageHandler);\n\n  return {\n    destroyMessage() {\n      window.removeEventListener('message', messageHandler);\n      window.removeEventListener('storage', messageHandler);\n    },\n  };\n}\n", "import { analyticsActive, getUserInfo, type UserInfo } from '@particle-network/auth-core';\nimport { isClient } from '.';\n\nexport const sendAnalyticsActive = (\n  action: 'sign' | 'login' | 'open' | 'open_wallet',\n  userInfo?: Omit<UserInfo, 'token'>\n) => {\n  const info = userInfo ?? getUserInfo();\n  if (info && isClient()) {\n    let wallet = info.wallets.find((item) => item.chain_name !== 'solana');\n    if (!wallet?.public_address) {\n      wallet = info.wallets.find((item) => item.chain_name === 'solana');\n    }\n    if (wallet && wallet.public_address) {\n      /* eslint-disable */\n      analyticsActive({\n        chain_id:\n          wallet.chain_name !== 'solana'\n            ? Number(window.particleAuth?.ethereum.chainId)\n            : window.particleAuth?.solana.chainId || 101,\n        identity: info.uuid,\n        login_type: 'particle' as any,\n        action: action as any,\n        wallet_address: wallet.public_address,\n        user_info: JSON.stringify(info),\n      });\n      /* eslint-enable */\n    }\n  }\n};\n", "export const getVersion = () => {\n  // replace when build\n  return 'web_' + '2.0.17';\n};\n", "import { AuthCoreEvent, hasMasterPassword, hasPaymentPassword, particleAuth } from '@particle-network/auth-core';\nimport React, { useCallback, useEffect, useRef } from 'react';\nimport { useModalOptions, useParticleAuth } from '.';\nimport { isClient } from '../utils';\nimport { isSocialAuthLogin } from '../utils/isSocialLogin';\nimport { useAuthCore, useConnect, useEthereum, useSolana } from './hooks';\n\nconst ProviderInject = ({ children }: React.PropsWithChildren) => {\n  const { provider } = useEthereum();\n\n  const { userInfo } = useParticleAuth();\n\n  const { wallet } = useSolana();\n\n  const { connect } = useConnect();\n\n  const injectRef = useRef(false);\n\n  const { modalOptions } = useModalOptions();\n\n  const {\n    needRestoreWallet,\n    openAccountAndSecurity,\n    openSetMasterPassword,\n    openChangeMasterPassword,\n    openRestoreByMasterPassword,\n    openSetPaymentPassword,\n    openChangePaymentPassword,\n    openSetSecurityAccount,\n    openLinkLoginAccount,\n  } = useAuthCore();\n\n  if (isClient() && !injectRef.current) {\n    if (window.particle) {\n      window.particle.ethereum = provider;\n      window.particle.solana = wallet;\n    } else {\n      window.particle = { ethereum: provider, solana: wallet };\n    }\n    injectRef.current = true;\n    const socialLogin = isSocialAuthLogin();\n    window.particle.ethereum.isSocialConnecting = socialLogin;\n    window.particle.solana.isSocialConnecting = socialLogin;\n    console.log('particle provider inject', provider, wallet);\n    window.dispatchEvent(new CustomEvent('particle:authProviderInjected'));\n  }\n\n  useEffect(() => {\n    const onRequestAccount = ({ resolve, reject, param }: any) => {\n      console.log('particle auth connect', param);\n      connect(param)\n        .then((userInfo) => {\n          resolve(userInfo);\n        })\n        .catch((error) => {\n          reject(error);\n        });\n    };\n    particleAuth.on(AuthCoreEvent.RequestEthereumAccount, onRequestAccount);\n    particleAuth.on(AuthCoreEvent.RequestSolanaAccount, onRequestAccount);\n    return () => {\n      particleAuth.off(AuthCoreEvent.RequestEthereumAccount, onRequestAccount);\n      particleAuth.off(AuthCoreEvent.RequestSolanaAccount, onRequestAccount);\n    };\n  }, [connect]);\n\n  const getUserInfo = useCallback(() => {\n    return userInfo;\n  }, [userInfo]);\n\n  useEffect(() => {\n    if (window.particle) {\n      window.particle._internal = {\n        needRestoreWallet,\n        openAccountAndSecurity,\n        openSetMasterPassword,\n        openChangeMasterPassword,\n        openRestoreByMasterPassword,\n        openSetPaymentPassword,\n        openChangePaymentPassword,\n        openSetSecurityAccount,\n        openLinkLoginAccount,\n        hasMasterPassword,\n        hasPaymentPassword,\n        getUserInfo,\n      };\n    }\n  }, [\n    needRestoreWallet,\n    openAccountAndSecurity,\n    openSetMasterPassword,\n    openChangeMasterPassword,\n    openRestoreByMasterPassword,\n    openSetPaymentPassword,\n    openChangePaymentPassword,\n    openSetSecurityAccount,\n    openLinkLoginAccount,\n    getUserInfo,\n  ]);\n\n  useEffect(() => {\n    //https://eips.ethereum.org/EIPS/eip-6963\n    if (provider && typeof window !== 'undefined' && modalOptions.supportEIP6963 !== false) {\n      const info = {\n        uuid: 'cf589558-848b-4b1b-9ee7-800b5bbc07da',\n        name: 'Particle Auth',\n        icon: 'https://static.particle.network/logo-small.png',\n        rdns: 'network.particle',\n      };\n      const announceProvider = () => {\n        window.dispatchEvent(\n          new CustomEvent('eip6963:announceProvider', {\n            detail: Object.freeze({\n              provider,\n              info,\n            }),\n          })\n        );\n      };\n      window.addEventListener('eip6963:requestProvider', announceProvider);\n      announceProvider();\n      return () => {\n        window.removeEventListener('eip6963:requestProvider', announceProvider);\n      };\n    }\n  }, [provider, modalOptions.supportEIP6963]);\n\n  return <>{children}</>;\n};\n\nexport default ProviderInject;\n", "import base64url from 'base64url';\nimport qs from 'qs';\nimport { isServer } from '.';\n\nexport const isSocialAuthLogin = () => {\n  const query = qs.parse(!isServer() ? window.location.search : '', {\n    ignoreQueryPrefix: true,\n  });\n  const particleThirdpartyParamsContent = query?.particleThirdpartyParams as string;\n\n  if (particleThirdpartyParamsContent) {\n    const particleThirdpartyParams = JSON.parse(base64url.decode(particleThirdpartyParamsContent as string));\n    const { appState, error } = particleThirdpartyParams;\n    const appStateObj = appState ? JSON.parse(base64url.decode(appState as string)) : {};\n    const { purpose } = appStateObj;\n    return Boolean(!error) && purpose !== 'bindLoginAccount';\n  }\n\n  return false;\n};\n", "import {\n  AuthCoreEvent,\n  getSecurityAccount,\n  hasMasterPassword,\n  hasPaymentPassword,\n  isConnected,\n  isNeedRestoreWallet,\n  particleAuth,\n} from '@particle-network/auth-core';\nimport type { WalletConfig, WalletEntryPlugin } from '@particle-network/wallet';\nimport { useCallback, useEffect, useState } from 'react';\nimport { useCustomNavigate, useParticleAuth, useTranslation } from '..';\nimport { AuthError } from '../../api/model/authError';\nimport globalConfig from '../../common/config';\nimport { AuthPage } from '../../components/customRouter';\nimport { PageType } from '../../pages/account/accountVerify/config';\nimport { sendAnalyticsActive } from '../../utils/sendAnalyticsActive';\nimport type { OpenBuyOptions, OpenBuyOptionsKeys } from '../types';\nimport useMessage from './useMessage';\n\ninterface OpenWalletOptions {\n  windowSize?: 'small' | 'large';\n  pathName?: string;\n  query?: {\n    [key: string]: unknown;\n  };\n  topMenuType?: 'close' | 'fullscreen';\n}\n\nexport const useAuthCore = () => {\n  const navigate = useCustomNavigate();\n  const { userInfo, modalOptions, walletEntryPlugin } = useParticleAuth();\n  const [needRestoreWallet, setNeedRestoreWallet] = useState(isNeedRestoreWallet());\n  const { t } = useTranslation();\n  const message = useMessage();\n\n  const openAccountAndSecurity = useCallback(() => {\n    navigate(AuthPage.AccountSecurity);\n  }, [navigate]);\n\n  const openSetMasterPassword = useCallback(() => {\n    if (hasMasterPassword()) {\n      throw new Error('Master password already exists.');\n    }\n    navigate('account/master-password');\n  }, [navigate]);\n\n  const openChangeMasterPassword = useCallback(() => {\n    if (!hasMasterPassword()) {\n      throw new Error('Master password not exist, please set it first!');\n    }\n    if (isNeedRestoreWallet()) {\n      throw new Error('Wallet not restore, please restore it by master password first!');\n    }\n    navigate('account/master-password/change');\n  }, [navigate]);\n\n  const openRestoreByMasterPassword = useCallback(() => {\n    if (!hasMasterPassword()) {\n      throw new Error('Master password not exists.');\n    }\n    if (!isNeedRestoreWallet()) {\n      throw new Error('Wallet has been restore.');\n    }\n    navigate(AuthPage.MasterPasswordVerify);\n  }, [navigate]);\n\n  const openWallet = useCallback(\n    (options?: OpenWalletOptions) => {\n      const { windowSize, pathName, query, topMenuType } = options || {};\n      if (!isConnected()) {\n        throw AuthError.notLogin();\n      }\n      const walletEntry: WalletEntryPlugin = walletEntryPlugin || window.walletEntryPlugin;\n      if (!walletEntry) {\n        const errorMsg = t('error.wallet_not_activated');\n        message.warning(errorMsg);\n        throw new Error(errorMsg);\n      }\n      walletEntry.openWallet({\n        windowSize: windowSize || 'large',\n        pathName: pathName || '/',\n        query,\n        topMenuType,\n      });\n      sendAnalyticsActive('open_wallet');\n    },\n    [walletEntryPlugin, t]\n  );\n\n  const getWalletIFrame = useCallback(\n    (options?: WalletConfig): HTMLIFrameElement => {\n      if (!isConnected()) {\n        throw AuthError.notLogin();\n      }\n      if (modalOptions.wallet === false) {\n        throw new Error('The embedded wallet is disabled.');\n      }\n      if (!walletEntryPlugin) {\n        throw new Error('wallet plugin load failed.');\n      }\n      return walletEntryPlugin.getWalletIFrame(options);\n    },\n    [modalOptions.wallet, walletEntryPlugin]\n  );\n\n  const openBuy = useCallback(\n    (options?: OpenBuyOptions) => {\n      let url = `${globalConfig.env.buyUrl}/?language=${modalOptions.language || 'en'}&theme=${\n        modalOptions.themeType || 'light'\n      }`;\n      if (modalOptions.wallet && modalOptions.wallet?.customStyle) {\n        const { light, dark } = modalOptions.wallet.customStyle;\n        url += `&customStyle=${encodeURIComponent(Buffer.from(JSON.stringify({ light, dark })).toString('base64'))}`;\n      }\n\n      if (options) {\n        Object.keys(options).forEach((key) => {\n          const value = options[key as OpenBuyOptionsKeys];\n          if (value) {\n            url += `&${key}=${encodeURIComponent(value)}`;\n          }\n        });\n      }\n      if (typeof window !== 'undefined') {\n        window.open(url);\n      }\n    },\n    [modalOptions.wallet, modalOptions.themeType, modalOptions.language]\n  );\n\n  const openSetPaymentPassword = useCallback(\n    (securityAccountEmailOrPhone: string) => {\n      const securityAccount = getSecurityAccount();\n      if (!securityAccount.email && !securityAccount.phone) {\n        throw new Error('Please set security account first!');\n      }\n      if (hasPaymentPassword()) {\n        throw new Error('Payment password already exists.');\n      }\n\n      if (\n        securityAccountEmailOrPhone &&\n        securityAccountEmailOrPhone !== securityAccount.email &&\n        securityAccountEmailOrPhone !== securityAccount.phone\n      ) {\n        throw new Error('Invalid security account.');\n      }\n      navigate('account/set-password', {\n        state: {\n          account: securityAccountEmailOrPhone,\n        },\n      });\n    },\n    [navigate]\n  );\n\n  const openChangePaymentPassword = useCallback(() => {\n    if (!hasPaymentPassword()) {\n      throw new Error('Payment password not exists.');\n    }\n    navigate('account/change-password');\n  }, [navigate]);\n\n  const openSetSecurityAccount = useCallback(() => {\n    const securityAccount = getSecurityAccount();\n    if (securityAccount.email && securityAccount.phone) {\n      throw new Error('Security account already exists.');\n    }\n\n    const showSwitch = !securityAccount.email && !securityAccount.phone;\n\n    if ((securityAccount.email && !securityAccount.phone) || (!securityAccount.email && securityAccount.phone)) {\n      navigate('/account/verify', {\n        state: {\n          account: securityAccount.email || securityAccount.phone,\n          authType: securityAccount.email ? 'phone' : 'email',\n          redirectUrl: '/account/security',\n          pageType: PageType.VerifySecurityAccount_SetSecurityAccount,\n        },\n      });\n    } else {\n      if (userInfo?.email && !securityAccount.phone) {\n        navigate('account/bind', {\n          state: { showSwitch, accountType: 'phone', redirectUrl: AuthPage.AccountSecurity },\n        });\n      } else if (!securityAccount.email) {\n        navigate('account/bind', {\n          state: { showSwitch, accountType: 'email', redirectUrl: AuthPage.AccountSecurity },\n        });\n      } else {\n        navigate('account/bind', {\n          state: { showSwitch, accountType: 'phone', redirectUrl: AuthPage.AccountSecurity },\n        });\n      }\n    }\n  }, [navigate, userInfo]);\n\n  const openLinkLoginAccount = useCallback(() => {\n    const securityAccount = getSecurityAccount();\n    if (!securityAccount.email && !securityAccount.phone) {\n      throw new Error('Please set security account first!');\n    }\n    navigate(AuthPage.LoginAccount);\n  }, [navigate]);\n\n  useEffect(() => {\n    if (userInfo) {\n      setNeedRestoreWallet(isNeedRestoreWallet());\n    } else {\n      setNeedRestoreWallet(false);\n    }\n  }, [userInfo]);\n\n  useEffect(() => {\n    const onWalletRestored = () => {\n      setNeedRestoreWallet(isNeedRestoreWallet());\n    };\n    particleAuth.on(AuthCoreEvent.ParticleWalletRestored, onWalletRestored);\n    return () => {\n      particleAuth.off(AuthCoreEvent.ParticleWalletRestored, onWalletRestored);\n    };\n  }, []);\n\n  return {\n    userInfo,\n    needRestoreWallet,\n    openAccountAndSecurity,\n    openSetMasterPassword,\n    openChangeMasterPassword,\n    openRestoreByMasterPassword,\n    openSetPaymentPassword,\n    openChangePaymentPassword,\n    openSetSecurityAccount,\n    openLinkLoginAccount,\n    openWallet,\n    getWalletIFrame,\n    openBuy,\n  };\n};\n", "import { isServer } from '../../utils';\n\ntype Env = {\n  buyUrl: string;\n};\n\nclass GlobalConfig {\n  #devEnv: Env = {\n    buyUrl: 'https://ramp-debug.particle.network',\n  };\n\n  #stagingEnv: Env = {\n    buyUrl: 'https://ramp-staging.particle.network',\n  };\n\n  #productionEnv: Env = {\n    buyUrl: 'https://ramp.particle.network',\n  };\n\n  get env() {\n    if (!isServer() && window.__PARTICLE_ENVIRONMENT__ === 'development') {\n      return this.#devEnv;\n    } else if (!isServer() && window.__PARTICLE_ENVIRONMENT__ === 'staging') {\n      return this.#stagingEnv;\n    } else {\n      return this.#productionEnv;\n    }\n  }\n}\n\nconst globalConfig = new GlobalConfig();\nexport default globalConfig;\n", "import { useCallback, useEffect, useMemo } from 'react';\nimport { useAuthCoreModal } from '..';\n\nenum MessageType {\n  error = 'error',\n  info = 'info',\n  success = 'success',\n  warning = 'warning',\n}\n\nconst useMessage = () => {\n  const { authCoreModal } = useAuthCoreModal();\n\n  const rootModalContainer = useMemo(() => authCoreModal.rootModalContainer, [authCoreModal]);\n\n  const createMessage = useCallback(\n    (type: MessageType, content = '') => {\n      const mainContainer = document.createElement('div');\n      mainContainer.className = 'ant-message-notice';\n\n      const noticeContent = document.createElement('div');\n      noticeContent.className = 'ant-message-notice-content';\n\n      const customContent = document.createElement('div');\n      customContent.className = 'ant-message-custom-content';\n\n      const iconSpan = document.createElement('span');\n      iconSpan.setAttribute('role', 'img');\n      iconSpan.setAttribute('aria-label', 'check-circle');\n      iconSpan.className = 'anticon anticon-check-circle';\n\n      const svgIcon = document.createElement('svg');\n\n      const successIcon =\n        '<svg viewBox=\"64 64 896 896\" focusable=\"false\" data-icon=\"check-circle\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\"></path></svg>';\n\n      const errorIcon =\n        '<svg viewBox=\"64 64 896 896\" focusable=\"false\" data-icon=\"close-circle\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\"></path></svg>';\n\n      const infoIcon =\n        '<svg viewBox=\"64 64 896 896\" focusable=\"false\" data-icon=\"info-circle\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\"></path></svg>';\n\n      const wranIcon =\n        '<svg viewBox=\"64 64 896 896\" focusable=\"false\" data-icon=\"exclamation-circle\" width=\"1em\" height=\"1em\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\"></path></svg>';\n\n      if (type === MessageType.success) {\n        customContent.className += ' ant-message-success';\n        svgIcon.innerHTML = successIcon;\n      } else if (type === MessageType.error) {\n        customContent.className += ' ant-message-error';\n        svgIcon.innerHTML = errorIcon;\n      } else if (type === MessageType.info) {\n        customContent.className += ' ant-message-info';\n        svgIcon.innerHTML = infoIcon;\n      } else if (type === MessageType.warning) {\n        customContent.className += ' ant-message-warning';\n        svgIcon.innerHTML = wranIcon;\n      }\n\n      const textSpan = document.createElement('span');\n      textSpan.textContent = content;\n\n      iconSpan.appendChild(svgIcon);\n      customContent.appendChild(iconSpan);\n      customContent.appendChild(textSpan);\n      noticeContent.appendChild(customContent);\n      mainContainer.appendChild(noticeContent);\n      rootModalContainer?.querySelector('.ant-message')?.appendChild(mainContainer);\n      return mainContainer;\n    },\n    [rootModalContainer]\n  );\n\n  const error = useCallback(\n    (content: string) => {\n      const el = createMessage(MessageType.error, content);\n      setTimeout(() => {\n        rootModalContainer?.querySelector('.ant-message')?.removeChild(el);\n      }, 2000);\n    },\n    [createMessage]\n  );\n\n  const info = useCallback(\n    (content: string) => {\n      const el = createMessage(MessageType.info, content);\n      setTimeout(() => {\n        rootModalContainer?.querySelector('.ant-message')?.removeChild(el);\n      }, 2000);\n    },\n    [createMessage]\n  );\n\n  const success = useCallback(\n    (content: string) => {\n      const el = createMessage(MessageType.success, content);\n      setTimeout(() => {\n        rootModalContainer?.querySelector('.ant-message')?.removeChild(el);\n      }, 2000);\n    },\n    [createMessage]\n  );\n\n  const warning = useCallback(\n    (content: string) => {\n      const el = createMessage(MessageType.warning, content);\n      setTimeout(() => {\n        rootModalContainer?.querySelector('.ant-message')?.removeChild(el);\n      }, 2000);\n    },\n    [createMessage]\n  );\n\n  useEffect(() => {\n    if (rootModalContainer) {\n      if (rootModalContainer.querySelector('.ant-message')) return;\n      const messageContainer = document.createElement('div');\n      messageContainer.className = 'ant-message';\n      messageContainer.style.zIndex = '999999999999999999999999';\n      rootModalContainer.appendChild(messageContainer);\n    }\n  }, [rootModalContainer]);\n\n  return {\n    error,\n    info,\n    success,\n    warning,\n  };\n};\n\nexport default useMessage;\n", "import {\n  AuthCoreEvent,\n  AuthType,\n  check,\n  disconnect,\n  getCloudflareTurnstileResponse,\n  getConnectCaptcha,\n  isConnected,\n  isNullish,\n  particleAuth,\n  requireNotNullish,\n  type CloudflareOptions,\n  type ConnectParam,\n  type E164Phone,\n  type UserInfo,\n} from '@particle-network/auth-core';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { AuthPage } from '../../components/customRouter';\nimport { useCustomNavigate, useEvents, useParticleAuth } from '../../context';\nimport { isValidCaptcha, isValidE164PhoneNumber, isValidEmail } from '../../utils';\nimport { AuthCoreModalEvent } from '../types';\nimport useLogin from './useLogin';\n\nexport const useConnect = () => {\n  const navigate = useCustomNavigate();\n  const { events } = useEvents();\n  const {\n    modalOptions,\n    setLoginAuthorization,\n    setConnectionStatus,\n    connectionStatus,\n    setAuthCoreModal,\n    socialConnectCallback,\n    setSocialConnectCallback,\n  } = useParticleAuth();\n  const { loginHandler, socialAuthLogin } = useLogin();\n\n  const isLoginDirectly = useCallback((options: ConnectParam) => {\n    // @ts-ignore\n    const { email, phone, code, provider, thirdpartyCode, socialType } = options;\n\n    return (\n      ((isValidEmail(email) || isValidE164PhoneNumber(phone)) && isValidCaptcha(code)) ||\n      socialType ||\n      (provider && thirdpartyCode)\n    );\n  }, []);\n\n  const connect = useCallback(\n    async (options?: ConnectParam): Promise<UserInfo | undefined> => {\n      if (options && options.authorization) {\n        check(options.chain, 'chain is required when authorization is provided');\n      }\n      if (options && modalOptions.authTypes && modalOptions.authTypes.length > 0) {\n        if ('email' in options && !isNullish(options.email)) {\n          check(\n            modalOptions.authTypes.includes(AuthType.email),\n            'Email login is not supported, please add AuthType.email to AuthCoreContextProvider init-param \"authTypes\"'\n          );\n        } else if ('phone' in options && !isNullish(options.phone)) {\n          check(\n            modalOptions.authTypes.includes(AuthType.phone),\n            'Phone login is not supported, please add AuthType.phone to AuthCoreContextProvider init-param \"authTypes\"'\n          );\n        } else if ('socialType' in options && options.socialType) {\n          const type = (options.socialType as string) === 'twitterv1' ? 'twitter' : options.socialType;\n          check(\n            modalOptions.authTypes.includes(type as AuthType),\n            `${type} login is not supported, please add AuthType.${type} to AuthCoreContextProvider init-param \"authTypes\"`\n          );\n        } else if ('provider' in options && options.provider && 'thirdpartyCode' in options && options.thirdpartyCode) {\n          check(\n            modalOptions.authTypes.includes(options.provider),\n            `${options.provider} login is not supported, please add ${options.provider} to AuthCoreContextProvider init-param \"authTypes\"`\n          );\n        }\n      }\n      setConnectionStatus('connecting');\n      return new Promise((resolve, reject) => {\n        events.once(AuthCoreModalEvent.LoginSuccess, (userInfo) => {\n          setConnectionStatus('connected');\n          // \u5173\u95ED\u7A97\u53E3\n          setAuthCoreModal({\n            particleModalVisible: false,\n          });\n          const { socialType, nonce, code } = (options as any) || {};\n          if (socialType && nonce && code) {\n            socialConnectCallback?.onSuccess?.(userInfo);\n          }\n          resolve(userInfo);\n        });\n\n        events.once(AuthCoreModalEvent.LoginFail, (error) => {\n          setConnectionStatus('disconnected');\n          setAuthCoreModal({\n            particleModalVisible: false,\n          });\n          const { socialType, nonce, code } = (options as any) || {};\n          if (socialType && nonce && code) {\n            socialConnectCallback?.onError?.(error);\n          }\n          reject(error);\n        });\n        if (options && isLoginDirectly(options)) {\n          // social login, jwt, telegram, phone with code, email with code.\n          const { authorization, chain, socialType, nonce, prompt, code } = options as any;\n          if (authorization) {\n            setLoginAuthorization({ authorization, chain: requireNotNullish(chain) });\n          } else {\n            setLoginAuthorization(undefined);\n          }\n          if (socialType && (!nonce || !code)) {\n            socialAuthLogin({\n              socialType,\n              prompt,\n              authorization,\n              chain,\n            });\n          } else {\n            loginHandler(options as ConnectParam);\n          }\n        } else {\n          navigate(AuthPage.Login, {\n            state: options,\n          });\n        }\n      });\n    },\n    [events, modalOptions.authTypes, loginHandler, isLoginDirectly, navigate, socialConnectCallback]\n  );\n\n  useEffect(() => {\n    const onConnect = () => {\n      setConnectionStatus('connected');\n    };\n\n    const onDisconnect = () => {\n      setConnectionStatus('disconnected');\n    };\n    particleAuth.on(AuthCoreEvent.ParticleAuthConnect, onConnect);\n    particleAuth.on(AuthCoreEvent.ParticleAuthDisconnect, onDisconnect);\n\n    if (isConnected()) {\n      setConnectionStatus('connected');\n    }\n\n    return () => {\n      particleAuth.off(AuthCoreEvent.ParticleAuthConnect, onConnect);\n      particleAuth.off(AuthCoreEvent.ParticleAuthDisconnect, onDisconnect);\n    };\n  }, []);\n\n  const requestConnectCaptcha = useCallback(\n    async (\n      config: { email: string } | { phone: E164Phone; cloudflareOptions?: CloudflareOptions }\n    ): Promise<boolean> => {\n      if ('email' in config && config.email) {\n        return await getConnectCaptcha(config);\n      } else if ('phone' in config && config.phone) {\n        const token = await getCloudflareTurnstileResponse(config.cloudflareOptions);\n        // eslint-disable-next-line camelcase\n        return await getConnectCaptcha({ phone: config.phone, cf_turnstile_response: token });\n      }\n      throw new Error('Invalid config');\n    },\n    []\n  );\n\n  const connected = useMemo(() => connectionStatus === 'connected', [connectionStatus]);\n\n  return {\n    connect,\n    disconnect,\n    connectionStatus,\n    connected,\n    requestConnectCaptcha,\n    setSocialConnectCallback,\n  };\n};\n", "import type { AuthType, ERC4337Options } from '@particle-network/auth-core';\nimport type { WalletOption } from '@particle-network/wallet';\nimport { useParticleAuth } from '..';\nimport type { CurrencyUnit, Theme } from '../../types';\nimport { type CustomStyle, type Language } from '../types';\nimport type { PromptSettingConfig } from './../../api/model/bundle';\n\nexport const useCustomize = () => {\n  const { modalOptions, setModalOptions } = useParticleAuth();\n\n  const setThemeType = (themeType?: Theme) => {\n    setModalOptions({\n      themeType,\n    });\n  };\n\n  const setCustomStyle = (customStyle?: CustomStyle) => {\n    setModalOptions({\n      customStyle: customStyle ? { ...customStyle } : undefined,\n    });\n  };\n\n  const setLanguage = (language?: Language) => {\n    setModalOptions({\n      language,\n    });\n  };\n\n  const setAuthTypes = (authTypes?: AuthType[]) => {\n    setModalOptions({\n      authTypes: authTypes ? [...authTypes] : undefined,\n    });\n  };\n\n  const setFiatCoin = (fiatCoin?: CurrencyUnit) => {\n    setModalOptions({\n      fiatCoin,\n    });\n  };\n\n  const setERC4337 = (erc4337?: ERC4337Options) => {\n    setModalOptions({\n      erc4337,\n    });\n  };\n\n  const setWalletOptions = (wallet: Omit<WalletOption, 'language' | 'erc4337'> | false) => {\n    setModalOptions({\n      wallet: wallet === false ? wallet : { ...wallet },\n    });\n  };\n\n  const setPromptSettingConfig = (promptSettingConfig?: PromptSettingConfig) => {\n    setModalOptions({\n      promptSettingConfig,\n    });\n  };\n\n  return {\n    themeType: modalOptions.themeType,\n    setThemeType,\n    customStyle: modalOptions.customStyle,\n    setCustomStyle: setCustomStyle,\n    walletOptions: modalOptions.wallet,\n    setWalletOptions,\n    language: modalOptions.language,\n    setLanguage,\n    authTypes: modalOptions.authTypes,\n    setAuthTypes,\n    fiatCoin: modalOptions.fiatCoin,\n    setFiatCoin,\n    erc4337: modalOptions.erc4337,\n    setERC4337,\n    promptSettingConfig: modalOptions.promptSettingConfig,\n    setPromptSettingConfig,\n  };\n};\n", "import {\n  AuthType,\n  EvmRpcMethod,\n  SignTypedDataVersion,\n  check,\n  getEVMChainInfoById,\n  getLatestAuthType,\n  isConnected,\n  particleAuth,\n  requireNotNullish,\n  type EIP1559TxData,\n  type MessageTypes,\n  type PrefixedHexString,\n  type TxData,\n  type TypedDataV1,\n  type TypedMessage,\n} from '@particle-network/auth-core';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport type { Chain as ViemChain } from 'viem';\nimport { mainnet } from 'viem/chains';\nimport { useCustomNavigate, useEvents, useModalOptions, useParticleAuth } from '..';\nimport { AuthError } from '../../api/model/authError';\nimport { AuthPage } from '../../components/customRouter';\nimport { isClient } from '../../utils';\nimport { getEvmChain } from '../../utils/chain-utils';\nimport { toHexPrefixString } from '../../utils/common-utils';\nimport evmSendTransaction from '../../utils/evmSendTransaction';\nimport { EVMProvider } from '../evmProvider';\nimport { AuthCoreModalEvent } from '../types';\nimport { useAuthCore } from './useAuthCore';\nimport { useConnect } from './useConnect';\nimport { useUserInfo } from './useUserInfo';\n\nexport const useEthereum = () => {\n  const navigate = useCustomNavigate();\n\n  const { events } = useEvents();\n\n  const [chainId, setChainId] = useState<number>(Number(particleAuth.ethereum.chainId));\n\n  const [chainInfo, setChainInfo] = useState<ViemChain>(requireNotNullish(getEvmChain(chainId) || mainnet));\n\n  const [address, setAddress] = useState(particleAuth.ethereum.selectedAddress);\n\n  const { userInfo } = useUserInfo();\n\n  const { needRestoreWallet } = useAuthCore();\n\n  const { modalOptions } = useModalOptions();\n\n  const { setAuthCoreModal } = useParticleAuth();\n\n  const { connect } = useConnect();\n\n  const silentApprove = useMemo(() => {\n    if (\n      needRestoreWallet ||\n      userInfo?.security_account.has_set_payment_password ||\n      modalOptions.promptSettingConfig?.promptPaymentPasswordSettingWhenSign ||\n      (getLatestAuthType() !== AuthType.jwt && getLatestAuthType() !== AuthType.telegram)\n    ) {\n      return false;\n    }\n    return true;\n  }, [\n    userInfo?.security_account.has_set_payment_password,\n    needRestoreWallet,\n    modalOptions.promptSettingConfig?.promptPaymentPasswordSettingWhenSign,\n  ]);\n\n  useEffect(() => {\n    const onChainChanged = (chainId: string) => {\n      setChainId(Number(chainId));\n    };\n    particleAuth.ethereum.on('chainChanged', onChainChanged);\n\n    const onConnect = () => {\n      setAddress(particleAuth.ethereum.selectedAddress);\n    };\n    particleAuth.ethereum.on('connect', onConnect);\n\n    const onAccountsChanged = (accounts: string[]) => {\n      if (accounts[0]) {\n        setAddress(accounts[0]);\n      }\n    };\n    particleAuth.ethereum.on('accountsChanged', onAccountsChanged);\n\n    const onDisconnect = () => {\n      setAddress(null);\n    };\n    particleAuth.ethereum.on('disconnect', onDisconnect);\n\n    return () => {\n      particleAuth.ethereum.off('chainChanged', onChainChanged);\n      particleAuth.ethereum.off('connect', onConnect);\n      particleAuth.ethereum.off('accountsChanged', onAccountsChanged);\n      particleAuth.ethereum.off('disconnect', onDisconnect);\n    };\n  }, [connect]);\n\n  useEffect(() => {\n    if (chainId) {\n      setChainInfo(requireNotNullish(getEvmChain(chainId) || mainnet));\n    }\n  }, [chainId]);\n\n  const checkAuthCoreState = () => {\n    check(particleAuth, 'Please init first!');\n    check(isConnected(), AuthError.notLogin());\n    check(particleAuth.ethereum.selectedAddress, 'Please create wallet first!');\n  };\n\n  const signImpl = useCallback(\n    async <T>(state: { method: string; param: unknown }): Promise<T> => {\n      checkAuthCoreState();\n      const result = await new Promise<T>((resolve, reject) => {\n        if (events.listenerCount(AuthCoreModalEvent.SignResponse) > 0) {\n          reject(AuthError.pending('sign'));\n        } else {\n          events.once(AuthCoreModalEvent.SignResponse, (response) => {\n            if (response.error) {\n              reject(response.error);\n            } else {\n              resolve(response.result);\n            }\n            setAuthCoreModal({ particleModalVisible: false });\n          });\n          navigate(AuthPage.EvmSign, {\n            replace: true,\n            state,\n          });\n        }\n      });\n      return result;\n    },\n    [navigate, events]\n  );\n\n  const signMessage = useCallback(\n    async (message: PrefixedHexString | string, uniq?: boolean): Promise<string> => {\n      if (silentApprove) {\n        const result = await particleAuth.ethereum.signMessage(toHexPrefixString(message), uniq);\n        return result;\n      } else {\n        const result = await signImpl<string>({\n          param: toHexPrefixString(message),\n          method: uniq ? EvmRpcMethod.personalSignUniq : EvmRpcMethod.personalSign,\n        });\n        return result;\n      }\n    },\n    [signImpl, silentApprove]\n  );\n\n  const signTypedData = useCallback(\n    async <V extends SignTypedDataVersion, T extends MessageTypes>({\n      data,\n      version,\n      uniq,\n    }: {\n      data: V extends 'V1' ? TypedDataV1 : TypedMessage<T>;\n      version: V;\n      uniq?: boolean;\n    }): Promise<string> => {\n      if (silentApprove) {\n        const result = await particleAuth.ethereum.signTypedData({ data, version, uniq });\n        return result;\n      } else {\n        const result = await signImpl<string>({\n          param: data,\n          method: getSignTypedDataMethod({ version, uniq }),\n        });\n        return result;\n      }\n    },\n    [signImpl, silentApprove]\n  );\n\n  const sendTransaction = useCallback(\n    async (transaction: Omit<TxData, 'from'> | Omit<EIP1559TxData, 'from'>): Promise<string> => {\n      if (transaction.chainId && !getEVMChainInfoById(Number(transaction.chainId))) {\n        throw new Error(`The chainId: ${transaction.chainId} is not supported.`);\n      }\n\n      if (silentApprove) {\n        const result = await evmSendTransaction(transaction);\n        return result;\n      } else {\n        const result = await signImpl<string>({\n          param: { ...transaction, from: address, chainId: transaction.chainId || chainId },\n          method: EvmRpcMethod.ethSendTransaction,\n        });\n        return result;\n      }\n    },\n    [address, chainId, signImpl, silentApprove]\n  );\n\n  const switchChain = useCallback(async (id: number | PrefixedHexString) => {\n    await requireNotNullish(particleAuth, 'Please init first!').ethereum.switchChain(id);\n  }, []);\n\n  const enable = useCallback(async (): Promise<string> => {\n    const result = await requireNotNullish(particleAuth, 'Please init first!').ethereum.enable();\n    return result[0];\n  }, []);\n\n  const provider = useMemo((): EVMProvider => {\n    if (isClient() && window.particle?.ethereum) {\n      return window.particle?.ethereum;\n    } else {\n      const eip1193Provider = new EVMProvider();\n      eip1193Provider.signMessage = signMessage;\n      eip1193Provider.signTypedData = signTypedData;\n      eip1193Provider.sendTransaction = sendTransaction;\n      return eip1193Provider;\n    }\n  }, []);\n\n  useEffect(() => {\n    if (provider) {\n      provider.signMessage = signMessage;\n      provider.signTypedData = signTypedData;\n      provider.sendTransaction = sendTransaction;\n    }\n  }, [provider, signMessage, signTypedData, sendTransaction]);\n\n  return {\n    provider,\n    address,\n    chainId,\n    chainInfo,\n    switchChain,\n    signMessage,\n    signTypedData,\n    sendTransaction,\n    enable,\n  };\n};\n\nfunction getSignTypedDataMethod({ version, uniq }: { version: SignTypedDataVersion; uniq?: boolean }): string {\n  if (SignTypedDataVersion.V1 === version) {\n    return EvmRpcMethod.ethSignTypedDataV1;\n  } else if (SignTypedDataVersion.V3 === version) {\n    return EvmRpcMethod.ethSignTypedDataV3;\n  } else {\n    return uniq ? EvmRpcMethod.ethSignTypedDataV4Uniq : EvmRpcMethod.ethSignTypedDataV4;\n  }\n}\n", "import {\n  EvmEnhancedMethod,\n  GasFeeMode,\n  getEVMChainInfoById,\n  isNullish,\n  particleAuth,\n  type EIP1559TxData,\n  type GasFeeResult,\n  type TxData,\n} from '@particle-network/auth-core';\nimport { bnToHex } from './common-utils';\nimport { toWei } from './number-utils';\nimport { parseTransaction } from './transaction-utils';\n\nconst evmSendTransaction = async (transaction: Omit<TxData | EIP1559TxData, 'from'>): Promise<string> => {\n  const chainId = Number(transaction.chainId || particleAuth.ethereum.chainId);\n  const txData = {\n    ...transaction,\n    from: particleAuth.ethereum.selectedAddress!,\n    chainId,\n  };\n\n  const chain = getEVMChainInfoById(chainId)!;\n\n  if (isNullish(txData.data)) {\n    txData.data = '0x';\n  }\n\n  const evmTx = parseTransaction(txData, chain);\n\n  if (!evmTx.gasLimit) {\n    evmTx.gasLimit = await fetchEstimateGas(\n      { from: evmTx.from, to: evmTx.to, value: evmTx.value, data: evmTx.data },\n      chainId\n    );\n  }\n\n  if (Number(evmTx.type) === 2) {\n    if (!evmTx.maxPriorityFeePerGas || !evmTx.maxFeePerGas) {\n      const gasFee = await fetchSuggestedGasFee(chainId);\n      evmTx.maxFeePerGas = bnToHex(toWei(gasFee[GasFeeMode.medium].maxFeePerGas, 'gwei'));\n      evmTx.maxPriorityFeePerGas = bnToHex(toWei(gasFee[GasFeeMode.medium].maxPriorityFeePerGas, 'gwei'));\n    }\n  } else {\n    if (!evmTx.gasPrice) {\n      const gasFee = await fetchSuggestedGasFee(chainId);\n      evmTx.gasPrice = bnToHex(toWei(gasFee[GasFeeMode.medium].maxFeePerGas, 'gwei'));\n    }\n  }\n\n  const result = await particleAuth.ethereum.sendTransaction(evmTx);\n  return result;\n};\n\nconst fetchEstimateGas = async (\n  param: {\n    from: string;\n    to?: string;\n    value?: string | number;\n    data?: string;\n  },\n  chainId: number\n): Promise<string> => {\n  if (!param.to || param.to.length === 0) {\n    delete param.to;\n  }\n  const result = await particleAuth.ethereum.request({\n    chainId,\n    method: 'eth_estimateGas',\n    params: [param],\n  });\n  return result;\n};\n\nconst fetchSuggestedGasFee = async (chainId: number): Promise<GasFeeResult> => {\n  const result = await particleAuth.ethereum.request({\n    chainId,\n    method: EvmEnhancedMethod.suggestedGasFees,\n  });\n  return result;\n};\n\nexport default evmSendTransaction;\n", "import type { PrefixedHexString } from '@ethereumjs/util';\nimport { isHexString, stripHexPrefix } from '@ethereumjs/util';\nimport { BigNumber } from 'bignumber.js';\nimport BN from 'bn.js';\nimport ethjs from 'ethjs-unit';\nimport numbro from 'numbro';\nimport { bnToHex, isNullish, toHexPrefixString } from './common-utils';\n\nexport function formatTokenAmount(amount: number, decimals: number): string {\n  if (!amount || !decimals) {\n    return '0';\n  }\n\n  return numbro(amount / Math.pow(10, decimals)).format({\n    thousandSeparated: true,\n    mantissa: decimals,\n    trimMantissa: true,\n  });\n}\n\nexport function toWeiBigNumber(amount: string | number | undefined, unit = 'ether'): BigNumber {\n  return new BigNumber(bnToHex(toWei(amount, unit)));\n}\n\nexport function toBigNumber(amount: string | number | undefined): BigNumber {\n  if (typeof amount === 'string' || typeof amount === 'number') {\n    return new BigNumber(amount);\n  }\n  return new BigNumber(toHexPrefixString(amount));\n}\n\nexport function toWei(amount: BN | string | number | undefined, unit = 'ether'): BN {\n  if (!amount) {\n    return new BN(0);\n  }\n\n  return ethjs.toWei(amount, unit);\n}\n\nexport function fromWei(amount: BN | PrefixedHexString | undefined, unit = 'ether'): string {\n  if (!amount) {\n    return '0';\n  }\n\n  let result;\n  if (typeof amount === 'string' && amount.startsWith('0x')) {\n    result = ethjs.fromWei(new BN(stripHexPrefix(amount), 16), unit);\n  } else {\n    result = ethjs.fromWei(new BN(amount), unit);\n  }\n  return result;\n}\n\nexport function fromWeiFormat(amount: BN | PrefixedHexString | undefined, unit = 'ether', mantissa = 6): string {\n  if (!amount) {\n    return '0';\n  }\n\n  let result;\n  if (typeof amount === 'string' && amount.startsWith('0x')) {\n    result = ethjs.fromWei(new BN(stripHexPrefix(amount), 16), unit);\n  } else {\n    result = ethjs.fromWei(new BN(amount), unit);\n  }\n  return numbro(result).format({\n    thousandSeparated: true,\n    trimMantissa: true,\n    mantissa: mantissa,\n  });\n}\n\nexport function formatPrice({\n  amount,\n  price,\n  mantissa,\n  fiatCoin,\n}: {\n  amount: string | number;\n  price: number;\n  mantissa?: number;\n  fiatCoin: string;\n}): string {\n  if (!price) {\n    return '';\n  }\n  const value = new BigNumber(amount).multipliedBy(new BigNumber(price));\n  if (isNullish(mantissa)) {\n    if (value.lt(new BigNumber(1))) {\n      mantissa = 4;\n    } else {\n      mantissa = 2;\n    }\n  }\n\n  return `\u2248${numbro(value)\n    .format({\n      thousandSeparated: true,\n      trimMantissa: true,\n      mantissa: mantissa,\n    })\n    .replace(/-0$/, '0')} ${fiatCoin.toUpperCase()}`;\n}\n\nexport function trimDecimals(value: number | string, mantissa = 6): string {\n  return numbro(value).format({\n    thousandSeparated: true,\n    trimMantissa: true,\n    mantissa: mantissa,\n  });\n}\n\nexport function fromSunFormat(amount: PrefixedHexString | string, mantissa = 6): string {\n  const bn = new BigNumber(amount, isHexString(amount) ? 16 : 10);\n  const value = bn.div(new BigNumber(1000_000)).toString(10);\n  return numbro(value).format({\n    thousandSeparated: true,\n    trimMantissa: true,\n    mantissa: mantissa,\n  });\n}\n\n/**\n * \u683C\u5F0F\u5316\u4EE3\u5E01\u6570\u91CF\n * @param value \u539F\u59CB\u503C\uFF0C\u53EF\u4EE5\u662F BigNumber\u3001number \u6216 string \u7C7B\u578B\n * @param decimals \u5C0F\u6570\u4F4D\u6570\n * @returns \u683C\u5F0F\u5316\u540E\u7684\u4EE3\u5E01\u6570\u91CF\n */\nexport const formatTokenAmount2 = (value: BigNumber | number | string, decimals: number): string => {\n  let bn: BigNumber;\n  if (!(value instanceof BigNumber)) {\n    bn = new BigNumber(value).dividedBy(new BigNumber(10).pow(decimals));\n  } else {\n    bn = value;\n  }\n\n  const str = bn.toFixed();\n  const [int, dec] = str.split('.');\n  let decimalLength = 9;\n\n  if (int.length > 15) {\n    return bn.toExponential(2); // \u4F7F\u7528\u79D1\u5B66\u8BA1\u6570\u6CD5\uFF0C\u5C0F\u6570\u70B9\u540E\u4E24\u4F4D\n  }\n\n  if (int.length > 5) {\n    decimalLength = Math.max(9 - (int.length - 5), 0);\n  }\n\n  if (dec && decimalLength > 0) {\n    const decPart = dec.slice(0, decimalLength);\n    return new BigNumber(`${int}.${decPart}`).toFixed();\n  }\n\n  return int;\n};\n\n/**\n * \u683C\u5F0F\u5316\u6CD5\u5E01\u6570\u91CF\n * @param value \u539F\u59CB\u503C\uFF0C\u53EF\u4EE5\u662F BigNumber\u3001number \u6216 string \u7C7B\u578B\n * @returns \u683C\u5F0F\u5316\u540E\u7684\u6CD5\u5E01\u6570\u91CF\n */\nexport const formatFiatAmount = (value: BigNumber | number | string): string => {\n  let bn: BigNumber;\n  if (!(value instanceof BigNumber)) {\n    bn = new BigNumber(value);\n  } else {\n    bn = value;\n  }\n\n  const str = bn.toFixed();\n  const [int, dec] = str.split('.');\n\n  if (dec) {\n    const decPart = dec.slice(0, 4);\n    return new BigNumber(`${int}.${decPart}`).toFixed();\n  }\n\n  return int;\n};\n", "import { isHexString } from '@ethereumjs/util';\nimport type { Chain, GasFeeMode } from '@particle-network/auth-core';\nimport {\n  isChainSupportEIP1559,\n  tronAddressToHex,\n  type EIP1559TxData,\n  type EVMTransaction,\n  type TxData,\n} from '@particle-network/auth-core';\nimport { BigNumber } from 'bignumber.js';\nimport type { Chain as ViemChain } from 'viem/chains';\nimport { toHexPrefixString } from './common-utils';\nexport function isEIP1559Type(type: string | number | undefined): boolean {\n  if (typeof type == 'number') {\n    return type === 2;\n  } else if (typeof type == 'string') {\n    return Number(type) === 2;\n  }\n  return false;\n}\n\nconst parseValue = (value: string | number) => {\n  if (typeof value === 'string') {\n    if (value.startsWith('0x')) {\n      return value;\n    } else {\n      return `0x${new BigNumber(value).toString(16)}`;\n    }\n  } else {\n    return toHexPrefixString(value);\n  }\n};\n\nexport function parseTransaction(txData: TxData | EIP1559TxData, chainInfo: ViemChain): EVMTransaction {\n  let nonce,\n    gasPrice,\n    gasLimit,\n    from,\n    to,\n    value,\n    data,\n    type,\n    chainId,\n    maxPriorityFeePerGas,\n    maxFeePerGas,\n    action,\n    gasLevel;\n\n  const tron = isTron(chainInfo);\n  if (tron && !isHexString(txData.from)) {\n    from = tronAddressToHex(txData.from);\n  } else {\n    from = txData.from;\n  }\n  if (txData.to) {\n    if (tron && !isHexString(txData.to)) {\n      to = tronAddressToHex(txData.to);\n    } else {\n      to = txData.to;\n    }\n  }\n\n  if (txData.gas && !txData.gasLimit) {\n    gasLimit = parseValue(txData.gas);\n  } else if (txData.gasLimit) {\n    gasLimit = parseValue(txData.gasLimit);\n  }\n  if (txData.value) {\n    value = parseValue(txData.value);\n  }\n  if (txData.data) {\n    data = toHexPrefixString(txData.data);\n  }\n  if (txData.chainId) {\n    chainId = parseValue(txData.chainId);\n  } else {\n    chainId = parseValue(chainInfo.id);\n  }\n  if (txData.nonce) {\n    nonce = parseValue(txData.nonce);\n  }\n  if ('maxPriorityFeePerGas' in txData && txData.maxPriorityFeePerGas) {\n    maxPriorityFeePerGas = parseValue(txData.maxPriorityFeePerGas);\n  }\n  if ('maxFeePerGas' in txData && txData.maxFeePerGas) {\n    maxFeePerGas = parseValue(txData.maxFeePerGas);\n  }\n  if (txData.gasPrice) {\n    gasPrice = parseValue(txData.gasPrice);\n  }\n\n  if (txData.type || txData.type === 0) {\n    type = parseValue(txData.type);\n  } else {\n    if (\n      'maxPriorityFeePerGas' in txData &&\n      txData.maxPriorityFeePerGas &&\n      'maxFeePerGas' in txData &&\n      txData.maxFeePerGas &&\n      isChainSupportEIP1559(txData)\n    ) {\n      type = '0x2';\n    } else if ('gasPrice' in txData && txData.gasPrice) {\n      type = '0x0';\n    } else {\n      type = isChainSupportEIP1559(txData) ? '0x2' : '0x0';\n    }\n  }\n\n  if (txData.action && ['normal', 'cancel', 'speedup'].includes(txData.action)) {\n    action = txData.action;\n  } else {\n    action = undefined;\n  }\n\n  if (txData.gasLevel && ['custom', 'low', 'medium', 'high'].includes(txData.gasLevel)) {\n    gasLevel = txData.gasLevel as GasFeeMode;\n  } else {\n    gasLevel = undefined;\n  }\n\n  return {\n    nonce,\n    gasPrice,\n    gasLimit,\n    from,\n    to,\n    value,\n    data,\n    type,\n    chainId,\n    maxPriorityFeePerGas,\n    maxFeePerGas,\n    action,\n    gasLevel,\n  };\n}\n\nexport function isEMVMethod(method: string): boolean {\n  return typeof method === 'string' && (method.startsWith('eth_') || method.startsWith('personal_'));\n}\n\n/**\n * isEVMAddress\n * @param address\n * @returns\n */\nexport function isEVMAddress(address: string): boolean {\n  // @ts-ignore\n  return address && address.length === 42 && address.startsWith('0x');\n}\n\nexport function isTron(chain: Chain): boolean {\n  return chain.name.toLowerCase() === 'tron';\n}\n", "import { addHexPrefix, isHexString } from '@ethereumjs/util';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport {\n  EvmRpcMethod,\n  ethereumUtils,\n  getEVMChainInfoById,\n  isChainSupportEIP1559,\n  isNullish,\n  particleAuth,\n  requireNotNullish,\n  type ConnectParam,\n  type EIP1193Provider,\n  type EIP1559TxData,\n  type MessageTypes,\n  type PrefixedHexString,\n  type RpcInput,\n  type SignTypedDataVersion,\n  type TxData,\n  type TypedDataV1,\n  type TypedMessage,\n} from '@particle-network/auth-core';\n\nexport class EVMProvider implements EIP1193Provider {\n  readonly isParticleNetwork = true;\n\n  isSocialConnecting?: boolean;\n\n  signMessage = async (message: PrefixedHexString | string, uniq?: boolean): Promise<string> => {\n    throw new Error('signMessage not implemented.');\n  };\n\n  sendTransaction = async (transaction: Omit<TxData | EIP1559TxData, 'from'>): Promise<string> => {\n    throw new Error('sendTransaction not implemented.');\n  };\n\n  signTypedData = async <V extends SignTypedDataVersion, T extends MessageTypes>({\n    data,\n    version,\n    uniq,\n  }: {\n    data: V extends 'V1' ? TypedDataV1 : TypedMessage<T>;\n    version: V;\n    uniq?: boolean;\n  }): Promise<string> => {\n    throw new Error('signTypedData not implemented.');\n  };\n\n  get selectedAddress(): string | null {\n    return requireNotNullish(particleAuth).ethereum.selectedAddress;\n  }\n\n  get chainId(): string {\n    return requireNotNullish(particleAuth).ethereum.chainId;\n  }\n\n  isConnected(): boolean {\n    return requireNotNullish(particleAuth).ethereum.isConnected();\n  }\n\n  on(event: string, listener: (...args: any[]) => void): this {\n    particleAuth.ethereum.on(event, listener);\n    return this;\n  }\n\n  once(event: string, listener: (...args: any[]) => void): this {\n    particleAuth.ethereum.once(event, listener);\n    return this;\n  }\n\n  off(event: string, listener: (...args: any[]) => void): this {\n    particleAuth.ethereum.off(event, listener);\n    return this;\n  }\n\n  removeListener(event: string, listener: (...args: any[]) => void): this {\n    particleAuth.ethereum.removeListener(event, listener);\n    return this;\n  }\n\n  /**\n   * \u9002\u914D [web3modal](https://github.com/WalletConnect/web3modal)\n   * @param event\n   */\n  private emit(event: string) {\n    if (event === 'disconnect') {\n      this.disconnect();\n    }\n  }\n\n  /**\n   * @deprecated user `request` instead\n   */\n  async enable(): Promise<string[]> {\n    return await requireNotNullish(particleAuth).ethereum.enable();\n  }\n\n  async disconnect() {\n    return await requireNotNullish(particleAuth).ethereum.disconnect();\n  }\n\n  async connect(param?: ConnectParam): Promise<string[]> {\n    return await requireNotNullish(particleAuth).ethereum.connect(param);\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  async request(data: Partial<RpcInput>): Promise<any> {\n    const method = data.method;\n    if (!method) {\n      throw rpcErrors.invalidParams('Invalid parameters: method is required.');\n    }\n    if (Object.values(EvmRpcMethod).includes(method as EvmRpcMethod)) {\n      if (method === EvmRpcMethod.ethAccounts || method === EvmRpcMethod.ethRequestAccounts) {\n        return await requireNotNullish(particleAuth).ethereum.request(data);\n      } else if (method === EvmRpcMethod.ethChainId) {\n        return this.chainId;\n      } else if (method.startsWith(EvmRpcMethod.ethSignTypedData)) {\n        this.#checkConnected();\n        /**\n         * v1: https://medium.com/metamask/scaling-web3-with-signtypeddata-91d6efc8b290\n         * v3: https://medium.com/metamask/eip712-is-coming-what-to-expect-and-how-to-use-it-bb92fd1a7a26\n         * v4: https://docs.metamask.io/wallet/reference/eth_signtypeddata_v4/\n         */\n        const isV1 = ethereumUtils.isSignTypedDataV1(method);\n        const from = isV1 ? data?.params?.[1] : data?.params?.[0];\n        let typedData = isV1 ? data?.params?.[0] : data?.params?.[1];\n        if (!from || typeof from !== 'string') {\n          throw rpcErrors.invalidParams('Invalid parameters: must provide an Ethereum address.');\n        }\n        if (!typedData) {\n          throw rpcErrors.invalidParams('Invalid parameters: must provide typed data.');\n        }\n        if (from.toLowerCase() !== this.selectedAddress?.toLowerCase()) {\n          throw providerErrors.unauthorized();\n        }\n        if (typeof typedData === 'string') {\n          typedData = JSON.parse(typedData);\n        }\n        const uniq = ethereumUtils.isUniq(method);\n        const version = ethereumUtils.getSignTypedVersion(method);\n\n        const result = await this.signTypedData({\n          data: typedData as any, // eslint-disable-line\n          version,\n          uniq,\n        });\n        return result;\n      } else if (method.startsWith(EvmRpcMethod.personalSign)) {\n        this.#checkConnected();\n        let message = data?.params?.[0];\n        const from = data?.params?.[1];\n        if (!message || typeof message !== 'string') {\n          throw rpcErrors.invalidParams('Invalid parameters: must provide a valid message.');\n        }\n        if (!from || typeof from !== 'string') {\n          throw rpcErrors.invalidParams('Invalid parameters: must provide an Ethereum address.');\n        }\n        if (from.toLowerCase() !== this.selectedAddress?.toLowerCase()) {\n          throw providerErrors.unauthorized();\n        }\n\n        if (!isHexString(message)) {\n          message = addHexPrefix(Buffer.from(message).toString('hex'));\n        }\n        const uniq = ethereumUtils.isUniq(method);\n        const result = await this.signMessage(message as PrefixedHexString, uniq);\n        return result;\n      } else if (method === EvmRpcMethod.walletSwitchEthereumChain) {\n        return await requireNotNullish(particleAuth).ethereum.request(data);\n      } else if (method === EvmRpcMethod.ethSendTransaction) {\n        this.#checkConnected();\n        const chainId = Number(data.chainId || this.chainId);\n        const chain = getEVMChainInfoById(chainId);\n        if (!chain) {\n          throw providerErrors.chainDisconnected();\n        }\n        const txData = data.params?.[0] as any; // eslint-disable-line\n        if (!txData) {\n          throw rpcErrors.invalidParams('Invalid parameters: must provide an transaction data.');\n        }\n        if (isNullish(txData.type)) {\n          if (isChainSupportEIP1559(txData)) {\n            // set transaction default type \"0x2\", EIP1559.\n            txData.type = '0x2';\n          } else {\n            txData.type = '0x0';\n          }\n        }\n        if (isNullish(txData.chainId)) {\n          txData.chainId = `0x${chainId.toString(16)}`;\n        }\n        if (isNullish(txData.nonce)) {\n          txData.nonce = '0x0';\n        }\n        if (isNullish(txData.data)) {\n          txData.data = '0x';\n        }\n        const result = await this.sendTransaction(txData);\n        return result;\n      } else {\n        throw providerErrors.unsupportedMethod();\n      }\n    } else {\n      return await requireNotNullish(particleAuth).ethereum.request(data);\n    }\n  }\n\n  #checkConnected() {\n    if (!this.isConnected()) {\n      throw providerErrors.unauthorized();\n    }\n  }\n}\n", "import { useParticleAuth } from '..';\n\nexport const useUserInfo = () => {\n  const { userInfo } = useParticleAuth();\n  return {\n    userInfo,\n  };\n};\n", "import { useEffect, useReducer } from 'react';\n\nexport const useIsMounted = () => {\n  const [mounted, setMounted] = useReducer(() => true, false);\n  useEffect(setMounted, [setMounted]);\n  return mounted;\n};\n", "import {\n  AuthType,\n  SolanaRpcMethod,\n  check,\n  getLatestAuthType,\n  getSolanaChainInfoById,\n  isConnected,\n  particleAuth,\n  requireNotNullish,\n  solana,\n} from '@particle-network/auth-core';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport type { Chain as ViemChain } from 'viem/chains';\nimport { useCustomNavigate, useEvents, useModalOptions, useParticleAuth } from '..';\nimport { AuthError } from '../../api/model/authError';\nimport { AuthPage } from '../../components/customRouter';\nimport { isClient } from '../../utils';\nimport { getSolanaChain } from '../../utils/chain-utils';\nimport { SolanaWallet } from '../solanaWallet';\nimport { AuthCoreModalEvent } from '../types';\nimport { useAuthCore } from './useAuthCore';\nimport { useConnect } from './useConnect';\nimport { useUserInfo } from './useUserInfo';\nexport const useSolana = () => {\n  const navigate = useCustomNavigate();\n\n  const { events } = useEvents();\n\n  const [chainId, setChainId] = useState<number>(particleAuth.solana.chainId);\n\n  const [chainInfo, setChainInfo] = useState<ViemChain>(\n    requireNotNullish(getSolanaChain(particleAuth.solana.chainId) || solana)\n  );\n\n  const [address, setAddress] = useState(particleAuth.solana.selectedAddress);\n\n  const { setAuthCoreModal } = useParticleAuth();\n\n  const { connect } = useConnect();\n\n  const { userInfo } = useUserInfo();\n\n  const { needRestoreWallet } = useAuthCore();\n\n  const { modalOptions } = useModalOptions();\n\n  const silentApprove = useMemo(() => {\n    if (\n      needRestoreWallet ||\n      userInfo?.security_account.has_set_payment_password ||\n      modalOptions.promptSettingConfig?.promptPaymentPasswordSettingWhenSign ||\n      (getLatestAuthType() !== AuthType.jwt && getLatestAuthType() !== AuthType.telegram)\n    ) {\n      return false;\n    }\n    return true;\n  }, [\n    userInfo?.security_account.has_set_payment_password,\n    needRestoreWallet,\n    modalOptions.promptSettingConfig?.promptPaymentPasswordSettingWhenSign,\n  ]);\n\n  useEffect(() => {\n    const onChainChanged = (chainId: number) => {\n      setChainId(chainId);\n    };\n    particleAuth.solana.on('chainChanged', onChainChanged);\n\n    const onConnect = () => {\n      setAddress(particleAuth.solana.selectedAddress);\n    };\n    particleAuth.solana.on('connect', onConnect);\n\n    setChainId(particleAuth.solana.chainId ?? 101);\n\n    const onDisconnect = () => {\n      setAddress(null);\n    };\n    particleAuth.solana.on('disconnect', onDisconnect);\n\n    return () => {\n      particleAuth.solana.off('chainChanged', onChainChanged);\n      particleAuth.solana.off('connect', onConnect);\n      particleAuth.solana.off('disconnect', onDisconnect);\n    };\n  }, [connect]);\n\n  useEffect(() => {\n    if (chainId) {\n      let chain = getSolanaChain(chainId);\n      if (!chain && chainId === 101) {\n        chain = solana;\n      }\n      setChainInfo(requireNotNullish(chain));\n    }\n  }, [chainId]);\n\n  const checkAuthCoreState = () => {\n    check(particleAuth, 'Please init first!');\n    check(isConnected(), AuthError.notLogin());\n    check(particleAuth.solana.selectedAddress, 'Please create wallet first!');\n  };\n\n  const signImpl = useCallback(\n    async <T>(state: { method: string; param: unknown; chainId?: number }): Promise<T> => {\n      checkAuthCoreState();\n      const result = await new Promise<T>((resolve, reject) => {\n        if (events.listenerCount(AuthCoreModalEvent.SignResponse) > 0) {\n          reject(AuthError.pending('sign'));\n        } else {\n          events.once(AuthCoreModalEvent.SignResponse, (response) => {\n            if (response.error) {\n              reject(response.error);\n            } else {\n              resolve(response.result);\n            }\n            setAuthCoreModal({ particleModalVisible: false });\n          });\n          navigate(AuthPage.SolanaSign, {\n            replace: true,\n            state,\n          });\n        }\n      });\n      return result;\n    },\n    [navigate]\n  );\n\n  const signMessage = useCallback(\n    async (message: Uint8Array): Promise<{ signature: Uint8Array }> => {\n      if (silentApprove) {\n        const result = await particleAuth.solana.signMessage(message);\n        return result;\n      } else {\n        const signature = await signImpl<Uint8Array>({\n          param: message,\n          method: SolanaRpcMethod.signMessage,\n        });\n        return { signature };\n      }\n    },\n    [signImpl, silentApprove]\n  );\n\n  const signTransaction = useCallback(\n    async <T extends Transaction | VersionedTransaction>(transaction: T, chainId?: number): Promise<T> => {\n      check(!chainId || getSolanaChainInfoById(chainId), `The chainId: ${chainId} is not supported`);\n      if (silentApprove) {\n        const signature = await particleAuth.solana.signTransaction(transaction, chainId);\n        return signature;\n      } else {\n        const signature = await signImpl<T>({\n          param: transaction,\n          method: SolanaRpcMethod.signTransaction,\n          chainId,\n        });\n        return signature;\n      }\n    },\n    [signImpl, silentApprove]\n  );\n\n  const signAllTransactions = useCallback(\n    async <T extends Transaction | VersionedTransaction>(transactions: T[], chainId?: number): Promise<T[]> => {\n      check(!chainId || getSolanaChainInfoById(chainId), `The chainId: ${chainId} is not supported`);\n      if (silentApprove) {\n        const signature = await particleAuth.solana.signAllTransactions(transactions, chainId);\n        return signature;\n      } else {\n        const signature = await signImpl<T[]>({\n          param: transactions,\n          method: SolanaRpcMethod.signAllTransactions,\n          chainId,\n        });\n        return signature;\n      }\n    },\n    [signImpl, silentApprove]\n  );\n\n  const signAndSendTransaction = useCallback(\n    async <T extends Transaction | VersionedTransaction>(\n      transaction: T,\n      chainId?: number\n    ): Promise<{ signature: string }> => {\n      check(!chainId || getSolanaChainInfoById(chainId), `The chainId: ${chainId} is not supported`);\n      if (silentApprove) {\n        const result = await particleAuth.solana.signAndSendTransaction(transaction, chainId);\n        return result;\n      } else {\n        const signature = await signImpl<string>({\n          param: transaction,\n          method: SolanaRpcMethod.signAndSendTransaction,\n          chainId,\n        });\n        return { signature };\n      }\n    },\n    [signImpl, silentApprove]\n  );\n\n  const switchChain = useCallback(async (id: number) => {\n    await requireNotNullish(particleAuth, 'Please init first!').solana.switchChain(id);\n  }, []);\n\n  const enable = useCallback(async (): Promise<string> => {\n    await requireNotNullish(particleAuth, 'Please init first!').solana.connect();\n    return requireNotNullish(particleAuth.solana.selectedAddress);\n  }, []);\n\n  const wallet = useMemo(() => {\n    if (isClient() && window.particle?.solana) {\n      return window.particle.solana as SolanaWallet;\n    } else {\n      const solanaWallet = new SolanaWallet();\n      solanaWallet.signMessage = signMessage;\n      solanaWallet.signTransaction = signTransaction;\n      solanaWallet.signAllTransactions = signAllTransactions;\n      solanaWallet.signAndSendTransaction = signAndSendTransaction;\n      return solanaWallet;\n    }\n  }, []);\n\n  useEffect(() => {\n    if (wallet) {\n      wallet.signMessage = signMessage;\n      wallet.signTransaction = signTransaction;\n      wallet.signAllTransactions = signAllTransactions;\n      wallet.signAndSendTransaction = signAndSendTransaction;\n    }\n  }, [wallet, signMessage, signTransaction, signAllTransactions, signAndSendTransaction]);\n\n  return {\n    address,\n    chainId,\n    chainInfo,\n    switchChain,\n    signMessage,\n    signTransaction,\n    signAllTransactions,\n    signAndSendTransaction,\n    enable,\n    wallet,\n  };\n};\n", "import type { ConnectParam, RpcInput } from '@particle-network/auth-core';\nimport type { PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js';\n\nexport class SolanaWallet {\n  readonly isParticleNetwork = true;\n\n  isSocialConnecting?: boolean;\n\n  name = 'Particle';\n  url = 'https://particle.network';\n  icon = 'https://static.particle.network/wallet-icons/Particle.png';\n\n  on(event: string, listener: (...args: any[]) => void): this {\n    window.particleAuth?.solana.on(event, listener);\n    return this;\n  }\n\n  once(event: string, listener: (...args: any[]) => void): this {\n    window.particleAuth?.solana.once(event, listener);\n    return this;\n  }\n\n  off(event: string, listener: (...args: any[]) => void): this {\n    window.particleAuth?.solana.off(event, listener);\n    return this;\n  }\n\n  removeListener(event: string, listener: (...args: any[]) => void): this {\n    window.particleAuth?.solana.removeListener(event, listener);\n    return this;\n  }\n\n  get isConnected(): boolean {\n    return window.particleAuth?.solana.isConnected ?? false;\n  }\n\n  get connecting(): boolean {\n    return window.particleAuth?.solana.connecting ?? false;\n  }\n\n  get connected(): boolean {\n    return window.particleAuth?.solana.connected ?? false;\n  }\n\n  get publicKey(): PublicKey | null {\n    return window.particleAuth?.solana.publicKey ?? null;\n  }\n\n  get selectedAddress(): string | null {\n    return window.particleAuth?.solana.selectedAddress ?? null;\n  }\n\n  get chainId(): number {\n    return window.particleAuth?.solana.chainId ?? 101;\n  }\n\n  async connect(param?: ConnectParam): Promise<void> {\n    await window.particleAuth?.solana.connect(param);\n  }\n\n  async disconnect(): Promise<void> {\n    await window.particleAuth?.solana.disconnect();\n  }\n\n  signTransaction = async <T extends Transaction | VersionedTransaction>(\n    transaction: T,\n    chainId?: number\n  ): Promise<T> => {\n    throw new Error('signMessage not implemented.');\n  };\n\n  signAllTransactions = async <T extends Transaction | VersionedTransaction>(\n    transactions: T[],\n    chainId?: number\n  ): Promise<T[]> => {\n    throw new Error('signMessage not implemented.');\n  };\n\n  signAndSendTransaction = async <T extends Transaction | VersionedTransaction>(\n    transaction: T,\n    chainId?: number\n  ): Promise<{ signature: string }> => {\n    throw new Error('signMessage not implemented.');\n  };\n\n  signMessage = async (message: Uint8Array): Promise<{ signature: Uint8Array }> => {\n    throw new Error('signMessage not implemented.');\n  };\n\n  switchChain = async (chainId: number) => {\n    await window.particleAuth?.solana.switchChain(chainId);\n  };\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  async request(data: Partial<RpcInput>): Promise<any> {\n    return window.particleAuth?.solana.request(data);\n  }\n}\n", "import { getLatestAuthType, isSocialAuthType } from '@particle-network/auth-core';\nimport { useEffect } from 'react';\nimport { useConnect, useEthereum } from './hooks';\n\n/**\n * https://github.com/WalletConnect/web3modal/\n */\nconst Web3ModalProvider = ({ web3Modal }: { web3Modal?: any }) => {\n  const { connectionStatus } = useConnect();\n  const { provider } = useEthereum();\n\n  useEffect(() => {\n    if (web3Modal && connectionStatus === 'connected' && isSocialAuthType(getLatestAuthType()) && provider) {\n      //https://github.com/WalletConnect/web3modal/blob/8109853/packages/ethers/src/client.ts#L560\n      web3Modal?.setEIP6963Provider?.(provider, 'Particle Wallet');\n    }\n  }, [connectionStatus, provider, web3Modal]);\n  return undefined;\n};\n\nexport default Web3ModalProvider;\n", "export function save(key: string, value: string | null) {\n  if (value) {\n    localStorage.setItem(key, value);\n  } else {\n    removeItem(key);\n  }\n}\n\nexport function load(key: string): string | null {\n  return localStorage.getItem(key);\n}\n\nexport function once(key: string): boolean {\n  const value = localStorage.getItem(key);\n\n  if (!value) {\n    localStorage.setItem(key, '1');\n  }\n  return Boolean(value);\n}\n\nexport function removeItem(key: string) {\n  localStorage.removeItem(key);\n}\n\nexport class PreferenceKey {\n  static PN_OPEN_SET_PAYMENT_PASSWORD = 'PN_OPEN_SET_PAYMENT_PASSWORD';\n  static PN_OPEN_SET_MASTER_PASSWORD = 'PN_OPEN_SET_MASTER_PASSWORD';\n}\n", "import { PreferenceKey, once } from '../repository';\nimport { PromptSettingType } from './model/bundle';\n\nexport const isPromptSetMasterPassword = (promptMasterPasswordSettingWhenLogin?: number | boolean) => {\n  if (\n    promptMasterPasswordSettingWhenLogin === PromptSettingType.every ||\n    promptMasterPasswordSettingWhenLogin === PromptSettingType.everyAndNotSkip\n  ) {\n    return true;\n  } else if (promptMasterPasswordSettingWhenLogin || promptMasterPasswordSettingWhenLogin === PromptSettingType.first) {\n    return !once(PreferenceKey.PN_OPEN_SET_MASTER_PASSWORD);\n  } else {\n    return false;\n  }\n};\n"],
  "mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA,YAAYA,YAAW;AACvB,SAAS,YAAY,OAAO;AAC1B,SAAO,qCAAC,SAAI,OAAM,8BAA6B,OAAM,OAAM,QAAO,OAAM,SAAQ,aAAa,GAAG,SAAO,qCAAC,YAAO,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,SAAS,MAAM,GAAE,qCAAC,UAAK,OAAO,OAAO,QAAQ,QAAQ,IAAI,OAAO,WAAU,4BAA2B,GAAE,qCAAC,UAAK,OAAO,OAAO,QAAQ,QAAQ,IAAI,OAAO,WAAU,0BAAyB,CAAE;AACnU;AAHA,IAIO;AAJP;AAAA;AAAA;AAIA,IAAO,uBAAQ;AAAA;AAAA;;;ACJR,IAAM,YAAN,MAAgB;AAAA,EACrB,YAAmB,MAAqB,SAAiB;AAAtC;AAAqB;AACtC,SAAK,OAAO;AACZ,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,OAAc,WAAW;AACvB,WAAO,IAAI,UAAU,MAAM,uDAAuD;AAAA,EACpF;AAAA,EAEA,OAAc,sBAAsB;AAClC,WAAO,IAAI,UAAU,MAAM,+BAA+B;AAAA,EAC5D;AAAA,EAEA,OAAc,sBAAsB;AAClC,WAAO,IAAI,UAAU,MAAM,8BAA8B;AAAA,EAC3D;AAAA,EAEA,OAAc,eAAe;AAC3B,WAAO,IAAI,UAAU,MAAM,yEAAyE;AAAA,EACtG;AAAA,EAEA,OAAc,cAAc;AAC1B,WAAO,IAAI,UAAU,MAAM,cAAc;AAAA,EAC3C;AAAA,EAEA,OAAc,cAAc;AAC1B,WAAO,IAAI,UAAU,MAAM,oCAAoC;AAAA,EACjE;AAAA,EAEA,OAAc,WAAW;AACvB,WAAO,IAAI,UAAU,MAAM,uBAAuB;AAAA,EACpD;AAAA,EAEA,OAAc,mBAAmB;AAC/B,WAAO,IAAI,UAAU,MAAM,oBAAoB;AAAA,EACjD;AAAA,EAEA,OAAc,iBAAiB;AAC7B,WAAO,IAAI,UAAU,MAAM,iBAAiB;AAAA,EAC9C;AAAA,EAEA,OAAc,UAAU;AACtB,WAAO,IAAI,UAAU,MAAM,eAAe;AAAA,EAC5C;AAAA,EAEA,OAAc,QAAQ,SAAiB;AACrC,WAAO,IAAI,UAAU,KAAM,OAAO;AAAA,EACpC;AAAA,EAEA,OAAc,QAAQ,QAAgB;AACpC,WAAO,IAAI,UAAU,QAAQ,mBAAmB,sCAAsC;AAAA,EACxF;AACF;;;AChDO,IAAK,oBAAL,kBAAKC,uBAAL;AAIL,EAAAA,sCAAA,UAAO,KAAP;AAIA,EAAAA,sCAAA,WAAQ,KAAR;AAIA,EAAAA,sCAAA,WAAQ,KAAR;AAIA,EAAAA,sCAAA,qBAAkB,KAAlB;AAhBU,SAAAA;AAAA,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJZ,SAAS,oBAAoB,iCAAiC;;;;;;;;;;;;;;;AAmBvD,IAAM,YAAY,CAAC,SAAiB;AACzC,MAAI,CAAC,QAAQ,CAAC,KAAK,WAAW,SAAS,GAAG;AACxC,WAAO,QAAQ;AAAA,EACjB;AAEA,SAAO,wBAAwB,UAAU,KAAK,MAAM,CAAC,CAAC;AACxD;AAEO,IAAM,cAAc;AAIpB,IAAM,eAAe;AAErB,SAAS,aAAa,OAAgB;AAC3C,MAAI,SAAS,YAAY,KAAK,KAAK,GAAG;AACpC,WAAO;AAAA,EACT;AACF;AAEO,SAAS,aAAa,OAAe,YAA6B;AACvE,MAAI,CAAC,SAAS,MAAM,SAAS,GAAG;AAC9B,WAAO;AAAA,EACT;AACA,QAAM,cAAc,yCAAY;AAChC,QAAM,SAAS,mBAAmB,OAAO,WAAW;AACpD,SAAO;AACT;AAEO,IAAM,yBAAyB,CAAC,UAA8B;AACnE,MAAI,SAAS,aAAa,KAAK,KAAK,GAAG;AACrC,QAAI;AACF,UAAI,mBAAmB,KAAK,GAAG;AAC7B,cAAM,YAAY,0BAA0B,KAAK,EAAE,OAAO,OAAO;AACjE,eAAO;AAAA,MACT;AAAA,IACF,SAAS,GAAP;AAAA,IAEF;AAAA,EACF;AACF;AAEO,SAAS,eAAe,MAAe;AAC5C,SAAO,QAAQ,KAAK,MAAM,SAAS;AACrC;AAEO,IAAM,uBAAuB,MAAM;AACxC,SAAO;AACT;AAEO,IAAM,WAAW,MAAM;AAC5B,MAAI,SAAS;AAAG,WAAO;AACvB,SAAO,iEAAiE,KAAK,UAAU,SAAS;AAClG;AAEO,IAAM,WAAW,MAAM,OAAO,WAAW;AAEzC,IAAM,WAAW,MAAM,OAAO,WAAW;AAEzC,IAAM,gBAAgB,CAAC,UAA0C;AACtE,QAAM,cAAc,UAAU,SAAS,4BAAc;AACrD,QAAM,aAAa,UAAU,SAAS,2BAAa;AACnD,QAAM,YAAY,UAAU,SAAS,0BAAY;AACjD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;ACpEO,IAAK,qBAAL,kBAAKC,wBAAL;AACL,EAAAA,oBAAA,WAAQ;AACR,EAAAA,oBAAA,kBAAe;AACf,EAAAA,oBAAA,eAAY;AACZ,EAAAA,oBAAA,kBAAe;AAJL,SAAAA;AAAA,GAAA;;;AC9BZ,SAAS,kBAAkB;AAQ3B,SAAS,iBAAiB,WAAAC,UAAS,sBAAsB;AACzD,OAAOC,gBAAe;AACtB,SAAS,eAAAC,oBAAmB;;;ACT5B;AAAA,EACE,iBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA;AAAA,EACA,qBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA;AAAA,OACK;AAEP,SAAS,gBAAgB,aAAa,eAAe;AACrD,OAAOC,aAAY;AACnB,SAAS,oBAAoB;AAC7B,OAAO,SAAS;AAChB,OAAOC,WAAS,eAAe,eAAAC,cAAa,YAAY,aAAAC,aAAW,WAAAC,UAAS,UAAAC,SAAQ,YAAAC,iBAAgB;AACpG,OAAO,UAAU;;;ACnBjB,SAAS,mBAAmB;AAC5B,OAAO,QAAQ;AACf,OAAOC,UAAS,eAAe;;;ACF/B,OAAO,WAAW;;;;;;AAGlB,IAAM,kBAAkB,MAAM;AAC5B,SACE,0DACE,oCAAC,eAAO,eAA4B,GACpC,oCAAC,SAAI,WAAU,qBACb,oCAAC,SAAI,WAAU,iBACb,oCAAC,WAAI,GACL,oCAAC,WAAI,GACL,oCAAC,WAAI,GACL,oCAAC,WAAI,GACL,oCAAC,WAAI,GACL,oCAAC,WAAI,GACL,oCAAC,WAAI,GACL,oCAAC,WAAI,GACL,oCAAC,WAAI,GACL,oCAAC,WAAI,GACL,oCAAC,WAAI,GACL,oCAAC,WAAI,CACP,GACA,oCAAC,SAAI,WAAU,gBAAa,YAAU,GACtC,oCAAC,SAAI,WAAU,eAAY,kBAAgB,CAC7C,CACF;AAEJ;AAEA,IAAOC,mBAAQ;;;ADNf,IAAM,QAAiB;AAAA,EACrB;AAAA,IACE,MAAM;AAAA,IACN,WAAWC,OAAM,KAAK,MAAM,OAAO,uBAA0B;AAAA,EAC/D;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,uBAAoB;AAAA,EACzD;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,0BAA+B;AAAA,EACpE;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,8BAAiC;AAAA,EACtE;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,4BAA6C;AAAA,EAClF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,+BAAgD;AAAA,EACrF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,sBAAyB;AAAA,EAC9D;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,2BAAwC;AAAA,EAC7E;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,6BAAwC;AAAA,EAC7E;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,+BAA0C;AAAA,EAC/E;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,8BAAiC;AAAA,EACtE;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,+BAAgD;AAAA,EACrF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,mCAA8C;AAAA,EACnF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,2CAAsD;AAAA,EAC3F;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,sCAAiD;AAAA,EACtF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,qCAAgD;AAAA,EACrF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,sCAAiD;AAAA,EACtF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,oCAA+C;AAAA,EACpF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,uCAAkD;AAAA,EACvF;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,kCAAqC;AAAA,EAC1E;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,WAAWA,OAAM,KAAK,MAAM,OAAO,yCAAoD;AAAA,EACzF;AACF;AAEA,IAAM,eAAe,CAAC,UAAyB;AAC7C,QAAM,OAAO,QAAQ,MAAM;AAhH7B;AAiHI,QAAIC,SAAO,iBAAM,SAAN,mBAAY,MAAM,SAAlB,mBAAyB,GAAG,QAAQ,OAAO;AACtD,QAAIA,SAAQ,MAAMA,SAAQ,KAAK;AAC7B,MAAAA,QAAO;AAAA,IACT;AACA,QAAIA,UAAS,uBAAkB,CAAC,YAAY,KAAKA,UAAS,qBAAgB;AACxE,MAAAA,QAAO;AAAA,IACT;AACA,WAAOA;AAAA,EACT,GAAG,CAAC,MAAM,IAAI,CAAC;AAEf,QAAM,cAAc,QAAQ,MAAM;AA3HpC;AA4HI,QAAIC,gBAAc,iBAAM,SAAN,mBAAY,MAAM,SAAlB,mBAAyB;AAC3C,QAAI,SAAS,uBAAkB,CAAC,YAAY,KAAK,SAAS,qBAAgB;AACxE,MAAAA,eAAc;AAAA,IAChB;AACA,WAAOA;AAAA,EACT,GAAG,CAAC,MAAM,MAAM,IAAI,CAAC;AAErB,QAAM,QAAQ,QAAQ,MAAM;AAC1B,WAAO;AAAA,MACL,GAAI,MAAM,SAAS,CAAC;AAAA,MACpB,GAAG,GAAG,MAAM,WAAW;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,MAAM,OAAO,WAAW,CAAC;AAE7B,QAAM,OAAO,QAAQ,MAAM;AACzB,QAAIC,QAAO,MAAM,KAAK,CAAC,SAAgB,KAAK,SAAS,QAAQ,KAAK,SAAS,IAAI;AAC/E,QAAI,CAACA,OAAM;AACT,UAAI,MAAM;AACR,gBAAQ,IAAI,aAAa,IAAI;AAAA,MAC/B;AACA,MAAAA,QAAO,MAAM;AAAA,IACf;AACA,WAAOA;AAAA,EACT,GAAG,CAAC,IAAI,CAAC;AAET,SACE,gBAAAH,OAAA,cAAC,SAAI,aAAW,MAAM,cAAY,GAAG,UAAU,KAAK,GAAG,KAAK,QAC1D,gBAAAA,OAAA;AAAA,IAACA,OAAM;AAAA,IAAN;AAAA,MACC,UACE,gBAAAA,OAAA,cAAC,SAAI,WAAU,2BACb,gBAAAA,OAAA,cAACI,kBAAA,IAAgB,CACnB;AAAA;AAAA,IAGF,gBAAAJ,OAAA,cAAC,KAAK,WAAL,EAAgB,GAAG,OAAO,UAAU,MAAM,UAAU;AAAA,EACvD,CACF;AAEJ;AAEA,IAAO,uBAAQ;;;AEpKf,OAAOK,UAAS,aAAAC,kBAAiB;;;ACAjC,SAAS,WAAW,cAAc;AAElC,IAAM,cAAc;AAEL,SAAR,eAAgC;AACrC,QAAM,QAAQ,OAAY,IAAI;AAE9B,WAAS,YAAY,GAAQ;AAC3B,QAAI,CAAC,MAAM;AAAS;AACpB,UAAM,eAAe,MAAM,QAAQ,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAQjD,GACD,mBAAmB,aAAa,IAChC,kBAAkB,aAAa,aAAa,SAAS;AAEvD,UAAM,eAAe,EAAE,QAAQ,SAAS,EAAE,YAAY;AAEtD,QAAI,CAAC,cAAc;AACjB;AAAA,IACF;AAEA,QAAI,EAAE,UAAU;AACI,UAAI,SAAS,kBAAkB,kBAAkB;AACjE,wBAAgB,MAAM;AACtB,UAAE,eAAe;AAAA,MACnB;AAAA,IACF,OAAiB;AACf,UAAI,SAAS,kBAAkB,iBAAiB;AAC9C,yBAAiB,MAAM;AACvB,UAAE,eAAe;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAEA,YAAU,MAAM;AACd,QAAI,MAAM,SAAS;AACjB,YAAM,QAAQ,iBAAiB,WAAW,WAAW;AACrD,YAAM,QAAQ,MAAM,EAAE,eAAe,KAAK,CAAC;AAAA,IAC7C;AACA,WAAO,MAAM;AACX,UAAI,MAAM,SAAS;AACjB,cAAM,QAAQ,oBAAoB,WAAW,WAAW;AAAA,MAC1D;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;;;ADlDe,SAAR,UAA2B,OAAY;AAC5C,QAAM,QAAQ,aAAa;AAE3B,EAAAC,WAAU,MAAM;AACd,QAAI,CAAC,MAAM;AAAS;AACpB,UAAM,QAAQ,MAAM,EAAE,eAAe,KAAK,CAAC;AAAA,EAC7C,GAAG,CAAC,CAAC;AAEL,SACE,gBAAAC,OAAA,cAAC,SAAI,KAAK,OAAO,UAAU,KACxB,MAAM,QACT;AAEJ;;;AEhBA,SAAS,aAAa;AACtB,OAAOC,UAAS,YAAY,aAAAC,YAAW,qBAAqB,YAAAC,iBAAgB;;;ACD5E,SAAS,cAAc;AACvB,OAAOC,UAAS,aAAAC,YAAW,WAAAC,UAAS,UAAAC,SAAQ,gBAAgB;;;ACDrD,IAAM,mBAAmB,MAAM;AACpC,SAAO,OAAO,WAAW,eAAe,QAAQ,OAAO,QAAQ;AACjE;;;ACFA,OAAO,UAAU;AACjB,OAAOC,YAAW;;;;;;AAGlB,IAAM,cAAc,CAAC,EAAE,YAAY,OAAO,OAAO,MAAM;AACrD,QAAM,MAAM,0DAA8C;AAC1D,SACE,gBAAAC,OAAA,cAAAA,OAAA,gBACE,gBAAAA,OAAA,cAAC,eAAO,YAA4B,GACpC,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,YAAY,qBAAqB,cAAc;AAAA,MAE1D,WAAW;AAAA,MACV,GAAG;AAAA;AAAA,EACN,CACF;AAEJ;AAEA,IAAOC,wBAAQ;;;;;;AFJf,IAAM,iBAAiB,CAAC,UAAkB;AACxC,QAAM,EAAE,OAAO,UAAU,SAAS,YAAY,KAAK,IAAI;AACvD,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAkB,SAAS,CAAC;AACxD,QAAM,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,cAAcC,QAAO;AAAA,IACzB,QAAQ;AAAA,IACR,OAAO;AAAA,EACT,CAAC;AACD,QAAM,mBAAmBA,QAAuB,IAAI;AAEpD,QAAM,YAAYC,SAAQ,MAAM;AAC9B,UAAM,aAAa,CAAC,MAAM,WAAW,YAAY,SAAS,WAAW,eAAe,2BAA2B;AAC/G,WAAO,WAAW,KAAK,GAAG;AAAA,EAC5B,GAAG,CAAC,MAAM,WAAW,MAAM,CAAC;AAE5B,QAAM,WAAW,CAAC,WAAwB;AACxC,QAAI,gBAAoC;AACxC,QAAI,OAAO;AACX,WAAO,eAAe;AACpB,sBAAgB,cAAc;AAC9B,UAAI,+CAAe,UAAU,SAAS,oBAAoB;AACxD;AAAA,MACF;AACA,UAAI,+CAAe,WAAW;AAC5B,eAAO;AACP;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkBA,SAAQ,MAAM;AACpC,WAAO,MAAM,oBACT,SAAS,cAAc,MAAM,iBAAiB,IAC9C,cAAc,sBAAsB,SAAS,cAAc,MAAM;AAAA,EACvE,GAAG,CAAC,MAAM,mBAAmB,cAAc,kBAAkB,CAAC;AAE9D,EAAAC,WAAU,MAAM;AApDlB;AAqDI,QAAI,CAAC,UAAU,EAAC,qDAAkB,YAAW,iBAAiB,GAAG;AAC/D;AAAA,IACF;AACA,UAAM,oBAAoB,CAAC,MAAkB;AAC3C,UAAI,EAAE,SAAS,gBAAgB,SAAS,EAAE,MAAqB,GAAG;AAChE;AAAA,MACF;AACA,YAAM,UAAU,EAAE,QAAQ,GAAG;AAC7B,QAAE,gBAAgB;AAClB,kBAAY,QAAQ,SAAS;AAC7B,kBAAY,QAAQ,QAAQ;AAAA,IAC9B;AAEA,QAAI,SAAS;AACX,iEAAkB,YAAlB,mBAA2B,iBAAiB,cAAc;AAAA,IAC5D;AAEA,QAAI,CAAC,SAAS;AACZ,iEAAkB,YAAlB,mBAA2B,oBAAoB,cAAc;AAC7D,kBAAY,QAAQ,SAAS;AAC7B,kBAAY,QAAQ,QAAQ;AAAA,IAC9B;AAEA,WAAO,MAAM;AA5EjB,UAAAC;AA6EM,OAAAA,MAAA,qDAAkB,YAAlB,gBAAAA,IAA2B,oBAAoB,cAAc;AAC7D,kBAAY,QAAQ,SAAS;AAC7B,kBAAY,QAAQ,QAAQ;AAAA,IAC9B;AAAA,EACF,GAAG,CAAC,SAAS,QAAQ,qDAAkB,OAAO,CAAC;AAE/C,EAAAD,WAAU,MAAM;AAnFlB;AAoFI,QAAI,CAAC,UAAU,EAAC,qDAAkB,YAAW,iBAAiB,GAAG;AAC/D;AAAA,IACF;AACA,UAAM,kBAAkB,CAAC,MAAkB;AACzC,UAAI,YAAY,QAAQ,QAAQ;AAC9B,UAAE,gBAAgB;AAClB,oBAAY,QAAQ,SAAS;AAAA,MAC/B;AAAA,IACF;AAEA,UAAM,mBAAmB,CAAC,MAAkB;AAC1C,QAAE,eAAe;AACjB,YAAM,UAAU,EAAE,QAAQ,GAAG;AAC7B,UAAI,YAAY,QAAQ,UAAU,UAAU,YAAY,QAAQ,QAAQ,IAAI;AAC1E,gBAAQ;AAAA,MACV;AAAA,IACF;AAEA,+DAAkB,YAAlB,mBAA2B,iBAAiB,YAAY;AAExD,+DAAkB,YAAlB,mBAA2B,iBAAiB,aAAa,kBAAkB,EAAE,SAAS,KAAK;AAE3F,WAAO,MAAM;AA1GjB,UAAAC,KAAAC;AA2GM,OAAAD,MAAA,qDAAkB,YAAlB,gBAAAA,IAA2B,oBAAoB,YAAY;AAC3D,OAAAC,MAAA,qDAAkB,YAAlB,gBAAAA,IAA2B,oBAAoB,aAAa;AAAA,IAC9D;AAAA,EACF,GAAG,CAAC,QAAQ,qDAAkB,OAAO,CAAC;AAEtC,EAAAF,WAAU,MAAM;AACd,UAAM,gBAAgB,MAAM;AAC1B,gBAAU,SAAS,CAAC;AAAA,IACtB;AACA,WAAO,iBAAiB,UAAU,aAAa;AAC/C,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU,aAAa;AAAA,IACpD;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SACE,gBAAAG,OAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,MAAM;AAAA,MACL,GAAG;AAAA,MACJ;AAAA,MACA,gBAAgB;AAAA,MAChB,cAAc,MAAM;AAjI1B;AAkIQ,iBAAO,kCAAM,iBAAN,kCAA0B;AAAA,MACnC;AAAA;AAAA,IAEA,gBAAAA,OAAA,cAAC,SAAI,WAAU,2BAA0B,KAAK,oBAC5C,gBAAAA,OAAA,cAAC,eAAO,uBAA4B,GACpC,gBAAAA,OAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,eAAa,UAAU,CAAC,iBAAiB;AAAA,QACzC,WAAU;AAAA,QACV,SAAS,MAAM;AACb,kBAAQ;AAAA,QACV;AAAA;AAAA,IACF,GACA,gBAAAD,OAAA,cAAC,SAAI,WAAU,sBAAqB,eAAa,UAAU,CAAC,iBAAiB,GAAG,GAC/E,SAAS,gBAAAA,OAAA,cAAC,SAAI,WAAU,oBAAkB,KAAM,GAChD,QACH;AAAA,EACF;AAEJ;AAEA,IAAOE,2BAAQ;;;;;;ADlIf,IAAM,gBAAgB,WAAW,CAAC,OAAe,QAAQ;AApBzD;AAqBE,QAAM,EAAE,UAAU,OAAO,cAAc,CAAC,GAAG,aAAa,CAAC,EAAE,IAAI;AAC/D,QAAM,EAAE,cAAc,IAAI,iBAAiB;AAC3C,QAAM,CAAC,SAAS,UAAU,IAAIC,UAAS,MAAM,WAAW,KAAK;AAE7D,QAAM,UAAU,MAAM;AACpB,eAAW,KAAK;AAChB,UAAM,WAAW,MAAM,QAAQ;AAAA,EACjC;AAEA,QAAM,SAAS,MAAM;AACnB,eAAW,IAAI;AACf,UAAM,UAAU,MAAM,OAAO;AAAA,EAC/B;AAEA,sBAAoB,KAAK,OAAO;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE;AAEF,EAAAC,WAAU,MAAM;AAzClB,QAAAC;AA0CI,gBAAWA,MAAA,MAAM,YAAN,OAAAA,MAAiB,KAAK;AAAA,EACnC,GAAG,CAAC,MAAM,OAAO,CAAC;AAElB,OAAI,8CAAY,UAAZ,mBAAmB,KAAK;AAC1B,eAAW,MAAM,MAAM;AAAA,EACzB;AAEA,SACE,gBAAAC,OAAA,cAAAA,OAAA,gBACE,gBAAAA,OAAA,cAAC,eAAO,sBAA4B,GACnC,cAAc,YAAY,aAAa,MAAM,WAAW,UACvD,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,MAAM;AAAA,MACN,QAAO;AAAA,MACP,eAAe,qBAAqB,MAAM,aAAa;AAAA,MACvD,UAAU;AAAA,MACV,cAAc;AAAA,MACd,cAAc,MAAM;AAClB,eAAO,MAAM,oBACT,SAAS,cAAc,MAAM,iBAAiB,IAC9C,cAAc,sBAAsB,SAAS,cAAc,MAAM;AAAA,MACvE;AAAA,MACA,UAAU,MAAM;AACd,gBAAQ;AAAA,MACV;AAAA,MACA,WAAU,WAAM,aAAN,YAAkB;AAAA,MAE3B,GAAG;AAAA,MACJ,QAAQ;AAAA,QACN,GAAG,WAAW;AAAA,MAChB;AAAA;AAAA,IAEC;AAAA,EACH,IAEA,gBAAAA,OAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAW,sBAAsB,MAAM,aAAa;AAAA,MACpD,WAAU,WAAM,aAAN,YAAkB;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,WAAU;AAAA,MACV,cAAc,MAAM;AAClB,eAAO,MAAM,oBACT,SAAS,cAAc,MAAM,iBAAiB,IAC9C,cAAc,sBAAsB,SAAS,cAAc,MAAM;AAAA,MACvE;AAAA,MACA,OAAO,gBAAAD,OAAA,cAAAA,OAAA,cAAsE;AAAA,MAC7E;AAAA,MACC,GAAG;AAAA;AAAA,IAEH;AAAA,EACH,CAEJ;AAEJ,CAAC;AAED,IAAOE,0BAAQ;;;AIpGf,OAAOC,UAAS,aAAAC,YAAW,UAAAC,eAAc;AAEzC,IAAM,yBAAyB,CAAC,EAAE,iBAAiB,MAAW;AAC5D,QAAM,wBAAwBA,QAAuB,IAAI;AAEzD,EAAAD,WAAU,MAAM;AACd,qBAAiB;AAAA,MACf,oBAAoB,sBAAsB;AAAA,IAC5C,CAAC;AAAA,EACH,GAAG,CAAC,gBAAgB,CAAC;AAErB,SAAO,gBAAAD,OAAA,cAAC,SAAI,KAAK,uBAAuB;AAC1C;AAEA,IAAO,iCAAQ;;;ACdR,IAAM,eAAe;AAAA,EAC1B,IAAI,MAAM,OAAO,qBAAa,KAAK,CAAC,WAAW,OAAO,OAAO;AAAA,EAC7D,SAAS,MAAM,OAAO,qBAAa,KAAK,CAAC,WAAW,OAAO,OAAO;AAAA,EAClE,IAAI,MAAM,OAAO,qBAAa,KAAK,CAAC,WAAW,OAAO,OAAO;AAAA,EAC7D,SAAS,MAAM,OAAO,qBAAa,KAAK,CAAC,WAAW,OAAO,OAAO;AAAA,EAClE,IAAI,MAAM,OAAO,qBAAa,KAAK,CAAC,WAAW,OAAO,OAAO;AAAA,EAC7D,SAAS,MAAM,OAAO,qBAAa,KAAK,CAAC,WAAW,OAAO,OAAO;AAAA,EAClE,SAAS,MAAM,OAAO,qBAAa,KAAK,CAAC,WAAW,OAAO,OAAO;AAAA,EAClE,SAAS,MAAM,OAAO,qBAAa,KAAK,CAAC,WAAW,OAAO,OAAO;AAAA,EAClE,IAAI,MAAM,OAAO,qBAAa,KAAK,CAAC,WAAW,OAAO,OAAO;AAC/D;;;ACVA;AAAA,EACE;AAAA,EACA;AAAA,EACA,aAAAG;AAAA,EACA;AAAA,OAKK;AACP,OAAO,YAAY;AACnB,SAAS,MAAM,cAAc;;;ACX7B;AAAA,EACE;AAAA,EACA,uBAAAC;AAAA,EACA;AAAA,EACA,sBAAAC;AAAA,OAEK;;;ACNP,SAAS,mBAAmB;AAE5B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGA,IAAM,sBAAsB,CAAC,UAA6B;AAC/D,QAAM,YAAY,aAAa,KAAK;AACpC,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT;AACA,MAAI,aAAa;AACjB,MAAI,CAAC,UAAU,WAAW,CAAC,UAAU,KAAK,YAAY,EAAE,SAAS,SAAS,GAAG;AAC3E,iBAAa,UAAU,OAAO;AAAA,EAChC,OAAO;AACL,iBAAa,UAAU;AAAA,EACzB;AACA,SAAO,WAAW,QAAQ,mBAAmB,WAAW,EAAE,QAAQ,uBAAuB,WAAW;AACtG;AAEO,SAAS,gBAAgB,OAAsB;AA1BtD;AA2BE,YAAQ,wBAAa,KAAK,MAAlB,mBAAqB,mBAArB,mBAAqC,WAAU,IAAI,QAAQ,QAAQ,KAAK;AAClF;AAEO,SAAS,YAAY,IAAY;AACtC,SAAO,oBAAoB,EAAE;AAC/B;AAEO,SAAS,eAAe,IAAY;AACzC,SAAO,uBAAuB,EAAE;AAClC;AAEO,SAAS,cAAc,SAAiB,OAAsB;AACnE,MAAI,OAAO,KAAK,KAAK,YAAY,OAAO,GAAG;AACzC,WAAO,mBAAmB,OAAO;AAAA,EACnC;AACA,SAAO;AACT;AAEO,SAAS,SAAS,OAAc;AACrC,SAAO,MAAM,KAAK,YAAY,MAAM;AACtC;AAMO,SAAS,OAAO,OAAe;AACpC,SAAO,SAAS,MAAM,KAAK,YAAY,MAAM;AAC/C;AAEO,IAAM,YAAY,CAAC,MAAM,OAAO;AACrC,MAAI,CAAC;AAAK,WAAO;AACjB,SAAO,OAAO,IAAI,SAAS,GAAG,IAAI,MAAM,OAAO;AACjD;AAEO,SAAS,mBAAmB,OAAuB;AA9D1D;AA+DE,MAAI,OAAO;AACT,UAAM,YAAY,aAAa,KAAK;AACpC,QAAI,WAAW;AACb,YAAM,WAAS,4CAAW,eAAe,WAA1B,mBAAkC,kBAAiB;AAClE,UAAI,CAAC,OAAO,OAAO,OAAO,SAAS,QAAQ,MAAM,EAAE,SAAS,MAAM,GAAG;AACnE,eAAO,qDAAqD;AAAA,MAC9D,OAAO;AACL,eAAO,aAAa,SAAS;AAAA,MAC/B;AAAA,IACF,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;;;AD9DO,IAAM,sBAAsB,OAAO,EAAE,SAAS,SAAS,OAAO,MAAgC;AAfrG;AAgBE,QAAM,KAAK,WAAW,QAAO,YAAO,iBAAP,mBAAqB,SAAS,OAAO;AAClE,MAAI;AACJ,MAAI,WAAW,WAAW,aAAa,oBAAoB;AACzD,cAAU,MAAM,uBAAuB,OAAO;AAAA,EAChD,OAAO;AACL,QAAI,OAAO,WAAW,aAAa;AACjC,iBAAU,YAAO,iBAAP,mBAAqB,SAAS;AAAA,IAC1C;AAAA,EACF;AAEA,MAAI,OAAOC,qBAAoB,EAAE,CAAC,GAAG;AACnC,cAAUC,oBAAmB,OAAO;AAAA,EACtC;AACA,SAAO,WAAW;AACpB;;;AE7BA,SAAS,aAAa,eAAAC,cAAa,gBAAgB;AACnD,SAAS,wBAAwB;AAEjC,SAAS,sBAAAC,qBAAoB,wBAAwB;AAE9C,SAAS,YAAY,KAAkB;AAC5C,MAAI,MAAM,QAAQ,GAAG,GAAG;AACtB,UAAM,MAAM,IAAI,SAAS,IAAI;AAAA,EAC/B;AACA,MAAI,KAAK;AACP,QAAI,OAAO,IAAI,aAAa,YAAY;AACtC,YAAM,IAAI,SAAS;AAAA,IACrB;AACA,QAAI,IAAI,UAAU,IAAI;AACpB,aAAO;AAAA,IACT;AACA,WAAO,GAAG,IAAI,MAAM,GAAG,CAAC,OAAO,IAAI,MAAM,IAAI,SAAS,GAAG,IAAI,MAAM;AAAA,EACrE;AACA,SAAO;AACT;AAEO,IAAM,eAAe,CAAC,UAA0B;AACrD,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,MAAM,MAAM,GAAG;AAC7B,MAAI,MAAM,GAAG,UAAU,GAAG;AACxB,WAAO,GAAG,MAAM,UAAU,MAAM;AAAA,EAClC,OAAO;AACL,WAAO,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,SAAS,MAAM;AAAA,EAC9C;AACF;AAEO,IAAM,eAAe,CAAC,UAAkB;AAC7C,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AACA,MAAIA,oBAAmB,KAAK,GAAG;AAC7B,UAAM,cAAc,iBAAiB,KAAK;AAC1C,UAAM,cAAc,YAAY;AAChC,UAAM,OAAO,YAAY,eAAe,SAAS;AAEjD,QAAI,QAAQ,aAAa;AACvB,YAAM,QAAQ,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,KAAK,SAAS,CAAC;AAC/D,aAAO,IAAI,eAAe,KAAK,MAAM,GAAG,KAAK,QAAQ,KAAK,MAAM,CAAC,KAAK;AAAA,IACxE;AAAA,EACF;AACA,SAAO;AACT;AAUA,OAAO,UAAU,SAAS,YAAa,QAA0B;AAC/D,QAAM,OAAO;AACb,SAAO,KAAK,QAAQ,YAAY,SAAU,OAAO,QAAQ;AACvD,WAAO,OAAO,KAAK,WAAW,cAAc,KAAK,UAAU;AAAA,EAC7D,CAAC;AACH;AAEA,OAAO,UAAU,YAAY,WAAoB;AAC/C,MAAI,KAAK,WAAW,GAAG;AACrB,WAAO;AAAA,EACT,WAAW,KAAK,WAAW,GAAG;AAC5B,WAAO,KAAK,YAAY;AAAA,EAC1B;AAEA,SAAO,KAAK,MAAM,GAAG,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC;AACtD;AAkBO,SAAS,UAAU,OAAY;AACpC,SAAO,UAAU,QAAQ,UAAU;AACrC;AAQO,SAAS,eAAe,OAA2B;AACxD,SAAO,OAAO,UAAU,YAAY,CAACC,aAAY,KAAK,IAAI,OAAO,KAAK,KAAK,IAAI,SAAS,KAAK;AAC/F;AAEO,SAAS,kBAAkB,OAA8C;AAC9E,MAAI,OAAO,UAAU,YAAYA,aAAY,KAAK,GAAG;AACnD,WAAO;AAAA,EACT,OAAO;AACL,WAAO,YAAY,eAAe,KAAK,CAAC;AAAA,EAC1C;AACF;AAKO,SAAS,QAAQ,OAA8B;AACpD,SAAO,KAAK,MAAM,SAAS,EAAE;AAC/B;;;AHjGA,IAAM,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAY9B,IAAM,iBAAiB;AAAA,EACrB,gBAAgB,EAAE,eAAe,MAAM,GAAgC;AACrE,QAAI,CAAC,eAAe;AAClB,aAAO;AAAA,IACT;AACA,QAAI,MAAM,KAAK,YAAY,MAAM,UAAU;AACzC,aACE,aAAa,iBACb,CAACC,WAAU,cAAc,OAAO,KAChC,UAAU,iBACV,CAACA,WAAU,cAAc,IAAI;AAAA,IAEjC,OAAO;AACL,aAAO,UAAU,iBAAiB,CAACA,WAAU,cAAc,IAAI;AAAA,IACjE;AAAA,EACF;AAAA,EAEA,MAAM,gBAAgB,OAAc,SAA2C;AAnDjF;AAoDI,UAAM,SAAS,SAAS;AACxB,UAAM,WAAW,YAAY;AAC7B,UAAM,UAAU,SAAS,KAAK,KAC1B,YAAO,iBAAP,mBAAqB,OAAO,kBAC5B,MAAM,oBAAoB;AAAA,MACxB,GAAG;AAAA,MACH,SAAS,MAAM;AAAA,IACjB,CAAC;AACL,UAAM,WAAW,kBAAkB,KAAK;AACxC,UAAM,UAAU,SAAS,aAAa,SAAS,GAAG,qBAAqB,YAAY,SAAS,GAAG,cAAc;AAC7G,UAAM,YAAY,GAAG,SAAS,UAAU,MAAM;AAC9C,UAAM,QAAQ,OAAO,EAAE,QAAQ,MAAM,EAAE;AACvC,UAAM,WAAW,IAAI,KAAK,EAAE,YAAY;AAExC,UAAM,iBAAiB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,GAAI,EAAE,YAAY;AACzE,WAAO,sBAAsB;AAAA,MAC3B;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA,MAAM,GAAG,SAAS;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,UACJ,EAAE,eAAe,MAAM,GACvB,SAC8B;AAC9B,UAAM,UAAU,SAAS,KAAK,IACzB,cAAsC,UACvC,kBAAkB,MAAM,KAAK,gBAAgB,OAAO,OAAO,CAAC;AAChE,UAAMC,gBAAe,kBAAkB,OAAO,YAAY;AAC1D,QAAI;AACJ,QAAI,SAAS,KAAK,GAAG;AACnB,YAAM,EAAE,WAAW,OAAO,IAAI,MAAMA,cAAa,OAAO,YAAY,OAAO,OAAO,OAAO,CAAC;AAC1F,kBAAY,OAAO,KAAK,MAAM,EAAE,SAAS,QAAQ;AAAA,IACnD,OAAO;AACL,kBAAY,MAAMA,cAAa,SAAS,YAAY,OAAO;AAAA,IAC7D;AACA,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,yBAAQ;;;AIrGf,SAAS,iBAAiB,eAAAC,oBAAkC;AAGrD,IAAM,sBAAsB,CACjC,QACA,aACG;AANL;AAOE,QAAM,OAAO,8BAAYC,aAAY;AACrC,MAAI,QAAQ,SAAS,GAAG;AACtB,QAAI,SAAS,KAAK,QAAQ,KAAK,CAAC,SAAS,KAAK,eAAe,QAAQ;AACrE,QAAI,EAAC,iCAAQ,iBAAgB;AAC3B,eAAS,KAAK,QAAQ,KAAK,CAAC,SAAS,KAAK,eAAe,QAAQ;AAAA,IACnE;AACA,QAAI,UAAU,OAAO,gBAAgB;AAEnC,sBAAgB;AAAA,QACd,UACE,OAAO,eAAe,WAClB,QAAO,YAAO,iBAAP,mBAAqB,SAAS,OAAO,MAC5C,YAAO,iBAAP,mBAAqB,OAAO,YAAW;AAAA,QAC7C,UAAU,KAAK;AAAA,QACf,YAAY;AAAA,QACZ;AAAA,QACA,gBAAgB,OAAO;AAAA,QACvB,WAAW,KAAK,UAAU,IAAI;AAAA,MAChC,CAAC;AAAA,IAEH;AAAA,EACF;AACF;;;AC7BO,IAAM,aAAa,MAAM;AAE9B,SAAO;AACT;;;ACHA,SAAS,iBAAAC,gBAAe,qBAAAC,oBAAmB,sBAAAC,qBAAoB,gBAAAC,qBAAoB;AACnF,OAAOC,UAAS,eAAAC,cAAa,aAAAC,aAAW,UAAAC,eAAc;;;ACDtD,OAAO,eAAe;AACtB,OAAOC,SAAQ;AAGR,IAAM,oBAAoB,MAAM;AACrC,QAAM,QAAQC,IAAG,MAAM,CAAC,SAAS,IAAI,OAAO,SAAS,SAAS,IAAI;AAAA,IAChE,mBAAmB;AAAA,EACrB,CAAC;AACD,QAAM,kCAAkC,+BAAO;AAE/C,MAAI,iCAAiC;AACnC,UAAM,2BAA2B,KAAK,MAAM,UAAU,OAAO,+BAAyC,CAAC;AACvG,UAAM,EAAE,UAAU,MAAM,IAAI;AAC5B,UAAM,cAAc,WAAW,KAAK,MAAM,UAAU,OAAO,QAAkB,CAAC,IAAI,CAAC;AACnF,UAAM,EAAE,QAAQ,IAAI;AACpB,WAAO,QAAQ,CAAC,KAAK,KAAK,YAAY;AAAA,EACxC;AAEA,SAAO;AACT;;;ACnBA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAAC;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,eAAAC,cAAa,aAAAC,YAAW,YAAAC,iBAAgB;;;ACVjD;AAMA,IAAM,eAAN,MAAmB;AAAA,EAAnB;AACE,gCAAe;AAAA,MACb,QAAQ;AAAA,IACV;AAEA,oCAAmB;AAAA,MACjB,QAAQ;AAAA,IACV;AAEA,uCAAsB;AAAA,MACpB,QAAQ;AAAA,IACV;AAAA;AAAA,EAEA,IAAI,MAAM;AACR,QAAI,CAAC,SAAS,KAAK,OAAO,6BAA6B,eAAe;AACpE,aAAO,mBAAK;AAAA,IACd,WAAW,CAAC,SAAS,KAAK,OAAO,6BAA6B,WAAW;AACvE,aAAO,mBAAK;AAAA,IACd,OAAO;AACL,aAAO,mBAAK;AAAA,IACd;AAAA,EACF;AACF;AArBE;AAIA;AAIA;AAeF,IAAM,eAAe,IAAI,aAAa;AACtC,IAAO,iBAAQ;;;AC/Bf,SAAS,aAAa,aAAAC,YAAW,WAAAC,gBAAe;AAUhD,IAAM,aAAa,MAAM;AACvB,QAAM,EAAE,cAAc,IAAI,iBAAiB;AAE3C,QAAM,qBAAqBC,SAAQ,MAAM,cAAc,oBAAoB,CAAC,aAAa,CAAC;AAE1F,QAAM,gBAAgB;AAAA,IACpB,CAAC,MAAmB,UAAU,OAAO;AAhBzC;AAiBM,YAAM,gBAAgB,SAAS,cAAc,KAAK;AAClD,oBAAc,YAAY;AAE1B,YAAM,gBAAgB,SAAS,cAAc,KAAK;AAClD,oBAAc,YAAY;AAE1B,YAAM,gBAAgB,SAAS,cAAc,KAAK;AAClD,oBAAc,YAAY;AAE1B,YAAM,WAAW,SAAS,cAAc,MAAM;AAC9C,eAAS,aAAa,QAAQ,KAAK;AACnC,eAAS,aAAa,cAAc,cAAc;AAClD,eAAS,YAAY;AAErB,YAAM,UAAU,SAAS,cAAc,KAAK;AAE5C,YAAM,cACJ;AAEF,YAAM,YACJ;AAEF,YAAM,WACJ;AAEF,YAAM,WACJ;AAEF,UAAI,SAAS,yBAAqB;AAChC,sBAAc,aAAa;AAC3B,gBAAQ,YAAY;AAAA,MACtB,WAAW,SAAS,qBAAmB;AACrC,sBAAc,aAAa;AAC3B,gBAAQ,YAAY;AAAA,MACtB,WAAW,SAAS,mBAAkB;AACpC,sBAAc,aAAa;AAC3B,gBAAQ,YAAY;AAAA,MACtB,WAAW,SAAS,yBAAqB;AACvC,sBAAc,aAAa;AAC3B,gBAAQ,YAAY;AAAA,MACtB;AAEA,YAAM,WAAW,SAAS,cAAc,MAAM;AAC9C,eAAS,cAAc;AAEvB,eAAS,YAAY,OAAO;AAC5B,oBAAc,YAAY,QAAQ;AAClC,oBAAc,YAAY,QAAQ;AAClC,oBAAc,YAAY,aAAa;AACvC,oBAAc,YAAY,aAAa;AACvC,qEAAoB,cAAc,oBAAlC,mBAAmD,YAAY;AAC/D,aAAO;AAAA,IACT;AAAA,IACA,CAAC,kBAAkB;AAAA,EACrB;AAEA,QAAM,QAAQ;AAAA,IACZ,CAAC,YAAoB;AACnB,YAAM,KAAK,cAAc,qBAAmB,OAAO;AACnD,iBAAW,MAAM;AA5EvB;AA6EQ,uEAAoB,cAAc,oBAAlC,mBAAmD,YAAY;AAAA,MACjE,GAAG,GAAI;AAAA,IACT;AAAA,IACA,CAAC,aAAa;AAAA,EAChB;AAEA,QAAM,OAAO;AAAA,IACX,CAAC,YAAoB;AACnB,YAAM,KAAK,cAAc,mBAAkB,OAAO;AAClD,iBAAW,MAAM;AAtFvB;AAuFQ,uEAAoB,cAAc,oBAAlC,mBAAmD,YAAY;AAAA,MACjE,GAAG,GAAI;AAAA,IACT;AAAA,IACA,CAAC,aAAa;AAAA,EAChB;AAEA,QAAM,UAAU;AAAA,IACd,CAAC,YAAoB;AACnB,YAAM,KAAK,cAAc,yBAAqB,OAAO;AACrD,iBAAW,MAAM;AAhGvB;AAiGQ,uEAAoB,cAAc,oBAAlC,mBAAmD,YAAY;AAAA,MACjE,GAAG,GAAI;AAAA,IACT;AAAA,IACA,CAAC,aAAa;AAAA,EAChB;AAEA,QAAM,UAAU;AAAA,IACd,CAAC,YAAoB;AACnB,YAAM,KAAK,cAAc,yBAAqB,OAAO;AACrD,iBAAW,MAAM;AA1GvB;AA2GQ,uEAAoB,cAAc,oBAAlC,mBAAmD,YAAY;AAAA,MACjE,GAAG,GAAI;AAAA,IACT;AAAA,IACA,CAAC,aAAa;AAAA,EAChB;AAEA,EAAAC,WAAU,MAAM;AACd,QAAI,oBAAoB;AACtB,UAAI,mBAAmB,cAAc,cAAc;AAAG;AACtD,YAAM,mBAAmB,SAAS,cAAc,KAAK;AACrD,uBAAiB,YAAY;AAC7B,uBAAiB,MAAM,SAAS;AAChC,yBAAmB,YAAY,gBAAgB;AAAA,IACjD;AAAA,EACF,GAAG,CAAC,kBAAkB,CAAC;AAEvB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAO,qBAAQ;;;AFtGR,IAAM,cAAc,MAAM;AAC/B,QAAM,WAAW,kBAAkB;AACnC,QAAM,EAAE,UAAU,cAAc,kBAAkB,IAAI,gBAAgB;AACtE,QAAM,CAAC,mBAAmB,oBAAoB,IAAIC,UAAS,oBAAoB,CAAC;AAChF,QAAM,EAAE,EAAE,IAAI,eAAe;AAC7B,QAAM,UAAU,mBAAW;AAE3B,QAAM,yBAAyBC,aAAY,MAAM;AAC/C,qDAAiC;AAAA,EACnC,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,wBAAwBA,aAAY,MAAM;AAC9C,QAAI,kBAAkB,GAAG;AACvB,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACnD;AACA,aAAS,yBAAyB;AAAA,EACpC,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,2BAA2BA,aAAY,MAAM;AACjD,QAAI,CAAC,kBAAkB,GAAG;AACxB,YAAM,IAAI,MAAM,iDAAiD;AAAA,IACnE;AACA,QAAI,oBAAoB,GAAG;AACzB,YAAM,IAAI,MAAM,iEAAiE;AAAA,IACnF;AACA,aAAS,gCAAgC;AAAA,EAC3C,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,8BAA8BA,aAAY,MAAM;AACpD,QAAI,CAAC,kBAAkB,GAAG;AACxB,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AACA,QAAI,CAAC,oBAAoB,GAAG;AAC1B,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC5C;AACA,wEAAsC;AAAA,EACxC,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,aAAaA;AAAA,IACjB,CAAC,YAAgC;AAC/B,YAAM,EAAE,YAAY,UAAU,OAAO,YAAY,IAAI,WAAW,CAAC;AACjE,UAAI,CAACC,aAAY,GAAG;AAClB,cAAM,UAAU,SAAS;AAAA,MAC3B;AACA,YAAM,cAAiC,qBAAqB,OAAO;AACnE,UAAI,CAAC,aAAa;AAChB,cAAM,WAAW,EAAE,4BAA4B;AAC/C,gBAAQ,QAAQ,QAAQ;AACxB,cAAM,IAAI,MAAM,QAAQ;AAAA,MAC1B;AACA,kBAAY,WAAW;AAAA,QACrB,YAAY,cAAc;AAAA,QAC1B,UAAU,YAAY;AAAA,QACtB;AAAA,QACA;AAAA,MACF,CAAC;AACD,0BAAoB,aAAa;AAAA,IACnC;AAAA,IACA,CAAC,mBAAmB,CAAC;AAAA,EACvB;AAEA,QAAM,kBAAkBD;AAAA,IACtB,CAAC,YAA8C;AAC7C,UAAI,CAACC,aAAY,GAAG;AAClB,cAAM,UAAU,SAAS;AAAA,MAC3B;AACA,UAAI,aAAa,WAAW,OAAO;AACjC,cAAM,IAAI,MAAM,kCAAkC;AAAA,MACpD;AACA,UAAI,CAAC,mBAAmB;AACtB,cAAM,IAAI,MAAM,4BAA4B;AAAA,MAC9C;AACA,aAAO,kBAAkB,gBAAgB,OAAO;AAAA,IAClD;AAAA,IACA,CAAC,aAAa,QAAQ,iBAAiB;AAAA,EACzC;AAEA,QAAM,UAAUD;AAAA,IACd,CAAC,YAA6B;AA3GlC;AA4GM,UAAI,MAAM,GAAG,eAAa,IAAI,oBAAoB,aAAa,YAAY,cACzE,aAAa,aAAa;AAE5B,UAAI,aAAa,YAAU,kBAAa,WAAb,mBAAqB,cAAa;AAC3D,cAAM,EAAE,OAAO,KAAK,IAAI,aAAa,OAAO;AAC5C,eAAO,gBAAgB,mBAAmB,OAAO,KAAK,KAAK,UAAU,EAAE,OAAO,KAAK,CAAC,CAAC,EAAE,SAAS,QAAQ,CAAC;AAAA,MAC3G;AAEA,UAAI,SAAS;AACX,eAAO,KAAK,OAAO,EAAE,QAAQ,CAAC,QAAQ;AACpC,gBAAM,QAAQ,QAAQ;AACtB,cAAI,OAAO;AACT,mBAAO,IAAI,OAAO,mBAAmB,KAAK;AAAA,UAC5C;AAAA,QACF,CAAC;AAAA,MACH;AACA,UAAI,OAAO,WAAW,aAAa;AACjC,eAAO,KAAK,GAAG;AAAA,MACjB;AAAA,IACF;AAAA,IACA,CAAC,aAAa,QAAQ,aAAa,WAAW,aAAa,QAAQ;AAAA,EACrE;AAEA,QAAM,yBAAyBA;AAAA,IAC7B,CAAC,gCAAwC;AACvC,YAAM,kBAAkB,mBAAmB;AAC3C,UAAI,CAAC,gBAAgB,SAAS,CAAC,gBAAgB,OAAO;AACpD,cAAM,IAAI,MAAM,oCAAoC;AAAA,MACtD;AACA,UAAI,mBAAmB,GAAG;AACxB,cAAM,IAAI,MAAM,kCAAkC;AAAA,MACpD;AAEA,UACE,+BACA,gCAAgC,gBAAgB,SAChD,gCAAgC,gBAAgB,OAChD;AACA,cAAM,IAAI,MAAM,2BAA2B;AAAA,MAC7C;AACA,eAAS,wBAAwB;AAAA,QAC/B,OAAO;AAAA,UACL,SAAS;AAAA,QACX;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,QAAM,4BAA4BA,aAAY,MAAM;AAClD,QAAI,CAAC,mBAAmB,GAAG;AACzB,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AACA,aAAS,yBAAyB;AAAA,EACpC,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,yBAAyBA,aAAY,MAAM;AAC/C,UAAM,kBAAkB,mBAAmB;AAC3C,QAAI,gBAAgB,SAAS,gBAAgB,OAAO;AAClD,YAAM,IAAI,MAAM,kCAAkC;AAAA,IACpD;AAEA,UAAM,aAAa,CAAC,gBAAgB,SAAS,CAAC,gBAAgB;AAE9D,QAAK,gBAAgB,SAAS,CAAC,gBAAgB,SAAW,CAAC,gBAAgB,SAAS,gBAAgB,OAAQ;AAC1G,eAAS,mBAAmB;AAAA,QAC1B,OAAO;AAAA,UACL,SAAS,gBAAgB,SAAS,gBAAgB;AAAA,UAClD,UAAU,gBAAgB,QAAQ,UAAU;AAAA,UAC5C,aAAa;AAAA,UACb;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,OAAO;AACL,WAAI,qCAAU,UAAS,CAAC,gBAAgB,OAAO;AAC7C,iBAAS,gBAAgB;AAAA,UACvB,OAAO,EAAE,YAAY,aAAa,SAAS,sDAAsC;AAAA,QACnF,CAAC;AAAA,MACH,WAAW,CAAC,gBAAgB,OAAO;AACjC,iBAAS,gBAAgB;AAAA,UACvB,OAAO,EAAE,YAAY,aAAa,SAAS,sDAAsC;AAAA,QACnF,CAAC;AAAA,MACH,OAAO;AACL,iBAAS,gBAAgB;AAAA,UACvB,OAAO,EAAE,YAAY,aAAa,SAAS,sDAAsC;AAAA,QACnF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,GAAG,CAAC,UAAU,QAAQ,CAAC;AAEvB,QAAM,uBAAuBA,aAAY,MAAM;AAC7C,UAAM,kBAAkB,mBAAmB;AAC3C,QAAI,CAAC,gBAAgB,SAAS,CAAC,gBAAgB,OAAO;AACpD,YAAM,IAAI,MAAM,oCAAoC;AAAA,IACtD;AACA,+CAA8B;AAAA,EAChC,GAAG,CAAC,QAAQ,CAAC;AAEb,EAAAE,WAAU,MAAM;AACd,QAAI,UAAU;AACZ,2BAAqB,oBAAoB,CAAC;AAAA,IAC5C,OAAO;AACL,2BAAqB,KAAK;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,QAAQ,CAAC;AAEb,EAAAA,WAAU,MAAM;AACd,UAAM,mBAAmB,MAAM;AAC7B,2BAAqB,oBAAoB,CAAC;AAAA,IAC5C;AACA,iBAAa,GAAG,cAAc,wBAAwB,gBAAgB;AACtE,WAAO,MAAM;AACX,mBAAa,IAAI,cAAc,wBAAwB,gBAAgB;AAAA,IACzE;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AG/OA;AAAA,EACE,iBAAAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,qBAAAC;AAAA,OAKK;AACP,SAAS,eAAAC,cAAa,aAAAC,YAAW,WAAAC,gBAAe;AAOzC,IAAM,aAAa,MAAM;AAC9B,QAAM,WAAW,kBAAkB;AACnC,QAAM,EAAE,QAAAC,QAAO,IAAI,UAAU;AAC7B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,gBAAgB;AACpB,QAAM,EAAE,cAAc,gBAAgB,IAAI,iBAAS;AAEnD,QAAM,kBAAkBC,aAAY,CAAC,YAA0B;AAE7D,UAAM,EAAE,OAAO,OAAO,MAAM,UAAU,gBAAgB,WAAW,IAAI;AAErE,YACI,aAAa,KAAK,KAAK,uBAAuB,KAAK,MAAM,eAAe,IAAI,KAC9E,cACC,YAAY;AAAA,EAEjB,GAAG,CAAC,CAAC;AAEL,QAAMC,WAAUD;AAAA,IACd,OAAO,YAA0D;AAC/D,UAAI,WAAW,QAAQ,eAAe;AACpC,cAAM,QAAQ,OAAO,kDAAkD;AAAA,MACzE;AACA,UAAI,WAAW,aAAa,aAAa,aAAa,UAAU,SAAS,GAAG;AAC1E,YAAI,WAAW,WAAW,CAACE,WAAU,QAAQ,KAAK,GAAG;AACnD;AAAA,YACE,aAAa,UAAU,SAAS,SAAS,KAAK;AAAA,YAC9C;AAAA,UACF;AAAA,QACF,WAAW,WAAW,WAAW,CAACA,WAAU,QAAQ,KAAK,GAAG;AAC1D;AAAA,YACE,aAAa,UAAU,SAAS,SAAS,KAAK;AAAA,YAC9C;AAAA,UACF;AAAA,QACF,WAAW,gBAAgB,WAAW,QAAQ,YAAY;AACxD,gBAAM,OAAQ,QAAQ,eAA0B,cAAc,YAAY,QAAQ;AAClF;AAAA,YACE,aAAa,UAAU,SAAS,IAAgB;AAAA,YAChD,GAAG,oDAAoD;AAAA,UACzD;AAAA,QACF,WAAW,cAAc,WAAW,QAAQ,YAAY,oBAAoB,WAAW,QAAQ,gBAAgB;AAC7G;AAAA,YACE,aAAa,UAAU,SAAS,QAAQ,QAAQ;AAAA,YAChD,GAAG,QAAQ,+CAA+C,QAAQ;AAAA,UACpE;AAAA,QACF;AAAA,MACF;AACA,0BAAoB,YAAY;AAChC,aAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,QAAAH,QAAO,wCAAsC,CAAC,aAAa;AA/EnE;AAgFU,8BAAoB,WAAW;AAE/B,2BAAiB;AAAA,YACf,sBAAsB;AAAA,UACxB,CAAC;AACD,gBAAM,EAAE,YAAY,OAAO,KAAK,IAAK,WAAmB,CAAC;AACzD,cAAI,cAAc,SAAS,MAAM;AAC/B,iFAAuB,cAAvB,+CAAmC;AAAA,UACrC;AACA,kBAAQ,QAAQ;AAAA,QAClB,CAAC;AAED,QAAAA,QAAO,kCAAmC,CAAC,UAAU;AA5F7D;AA6FU,8BAAoB,cAAc;AAClC,2BAAiB;AAAA,YACf,sBAAsB;AAAA,UACxB,CAAC;AACD,gBAAM,EAAE,YAAY,OAAO,KAAK,IAAK,WAAmB,CAAC;AACzD,cAAI,cAAc,SAAS,MAAM;AAC/B,iFAAuB,YAAvB,+CAAiC;AAAA,UACnC;AACA,iBAAO,KAAK;AAAA,QACd,CAAC;AACD,YAAI,WAAW,gBAAgB,OAAO,GAAG;AAEvC,gBAAM,EAAE,eAAe,OAAO,YAAY,OAAO,QAAQ,KAAK,IAAI;AAClE,cAAI,eAAe;AACjB,kCAAsB,EAAE,eAAe,OAAOI,mBAAkB,KAAK,EAAE,CAAC;AAAA,UAC1E,OAAO;AACL,kCAAsB,MAAS;AAAA,UACjC;AACA,cAAI,eAAe,CAAC,SAAS,CAAC,OAAO;AACnC,4BAAgB;AAAA,cACd;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH,OAAO;AACL,yBAAa,OAAuB;AAAA,UACtC;AAAA,QACF,OAAO;AACL,wCAAyB;AAAA,YACvB,OAAO;AAAA,UACT,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,CAACJ,SAAQ,aAAa,WAAW,cAAc,iBAAiB,UAAU,qBAAqB;AAAA,EACjG;AAEA,EAAAK,WAAU,MAAM;AACd,UAAM,YAAY,MAAM;AACtB,0BAAoB,WAAW;AAAA,IACjC;AAEA,UAAM,eAAe,MAAM;AACzB,0BAAoB,cAAc;AAAA,IACpC;AACA,IAAAC,cAAa,GAAGC,eAAc,qBAAqB,SAAS;AAC5D,IAAAD,cAAa,GAAGC,eAAc,wBAAwB,YAAY;AAElE,QAAIC,aAAY,GAAG;AACjB,0BAAoB,WAAW;AAAA,IACjC;AAEA,WAAO,MAAM;AACX,MAAAF,cAAa,IAAIC,eAAc,qBAAqB,SAAS;AAC7D,MAAAD,cAAa,IAAIC,eAAc,wBAAwB,YAAY;AAAA,IACrE;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,wBAAwBN;AAAA,IAC5B,OACE,WACqB;AACrB,UAAI,WAAW,UAAU,OAAO,OAAO;AACrC,eAAO,MAAM,kBAAkB,MAAM;AAAA,MACvC,WAAW,WAAW,UAAU,OAAO,OAAO;AAC5C,cAAM,QAAQ,MAAM,+BAA+B,OAAO,iBAAiB;AAE3E,eAAO,MAAM,kBAAkB,EAAE,OAAO,OAAO,OAAO,uBAAuB,MAAM,CAAC;AAAA,MACtF;AACA,YAAM,IAAI,MAAM,gBAAgB;AAAA,IAClC;AAAA,IACA,CAAC;AAAA,EACH;AAEA,QAAM,YAAYQ,SAAQ,MAAM,qBAAqB,aAAa,CAAC,gBAAgB,CAAC;AAEpF,SAAO;AAAA,IACL,SAAAP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AC3KO,IAAM,eAAe,MAAM;AAChC,QAAM,EAAE,cAAc,gBAAgB,IAAI,gBAAgB;AAE1D,QAAM,eAAe,CAAC,cAAsB;AAC1C,oBAAgB;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,iBAAiB,CAAC,gBAA8B;AACpD,oBAAgB;AAAA,MACd,aAAa,cAAc,EAAE,GAAG,YAAY,IAAI;AAAA,IAClD,CAAC;AAAA,EACH;AAEA,QAAM,cAAc,CAAC,aAAwB;AAC3C,oBAAgB;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,eAAe,CAAC,cAA2B;AAC/C,oBAAgB;AAAA,MACd,WAAW,YAAY,CAAC,GAAG,SAAS,IAAI;AAAA,IAC1C,CAAC;AAAA,EACH;AAEA,QAAM,cAAc,CAAC,aAA4B;AAC/C,oBAAgB;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,aAAa,CAAC,YAA6B;AAC/C,oBAAgB;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,mBAAmB,CAAC,WAA+D;AACvF,oBAAgB;AAAA,MACd,QAAQ,WAAW,QAAQ,SAAS,EAAE,GAAG,OAAO;AAAA,IAClD,CAAC;AAAA,EACH;AAEA,QAAM,yBAAyB,CAAC,wBAA8C;AAC5E,oBAAgB;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,WAAW,aAAa;AAAA,IACxB;AAAA,IACA,aAAa,aAAa;AAAA,IAC1B;AAAA,IACA,eAAe,aAAa;AAAA,IAC5B;AAAA,IACA,UAAU,aAAa;AAAA,IACvB;AAAA,IACA,WAAW,aAAa;AAAA,IACxB;AAAA,IACA,UAAU,aAAa;AAAA,IACvB;AAAA,IACA,SAAS,aAAa;AAAA,IACtB;AAAA,IACA,qBAAqB,aAAa;AAAA,IAClC;AAAA,EACF;AACF;;;AC5EA;AAAA,EACE,YAAAQ;AAAA,EACA,gBAAAC;AAAA,EACA;AAAA,EACA,SAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,qBAAAC;AAAA,OAOK;AACP,SAAS,eAAAC,cAAa,aAAAC,YAAW,WAAAC,UAAS,YAAAC,iBAAgB;AAE1D,SAAS,eAAe;;;ACnBxB;AAAA,EACE;AAAA,EACA;AAAA,EACA,uBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AAAA,OAIK;;;ACRP,SAAS,eAAAC,cAAa,sBAAsB;AAC5C,SAAS,iBAAiB;AAC1B,OAAO,QAAQ;AACf,OAAO,WAAW;AAClB,OAAO,YAAY;AAGZ,SAAS,kBAAkB,QAAgB,UAA0B;AAC1E,MAAI,CAAC,UAAU,CAAC,UAAU;AACxB,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,SAAS,KAAK,IAAI,IAAI,QAAQ,CAAC,EAAE,OAAO;AAAA,IACpD,mBAAmB;AAAA,IACnB,UAAU;AAAA,IACV,cAAc;AAAA,EAChB,CAAC;AACH;AAEO,SAAS,eAAe,QAAqC,OAAO,SAAoB;AAC7F,SAAO,IAAI,UAAU,QAAQ,MAAM,QAAQ,IAAI,CAAC,CAAC;AACnD;AAEO,SAAS,YAAY,QAAgD;AAC1E,MAAI,OAAO,WAAW,YAAY,OAAO,WAAW,UAAU;AAC5D,WAAO,IAAI,UAAU,MAAM;AAAA,EAC7B;AACA,SAAO,IAAI,UAAU,kBAAkB,MAAM,CAAC;AAChD;AAEO,SAAS,MAAM,QAA0C,OAAO,SAAa;AAClF,MAAI,CAAC,QAAQ;AACX,WAAO,IAAI,GAAG,CAAC;AAAA,EACjB;AAEA,SAAO,MAAM,MAAM,QAAQ,IAAI;AACjC;AAEO,SAAS,QAAQ,QAA4C,OAAO,SAAiB;AAC1F,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,MAAI;AACJ,MAAI,OAAO,WAAW,YAAY,OAAO,WAAW,IAAI,GAAG;AACzD,aAAS,MAAM,QAAQ,IAAI,GAAG,eAAe,MAAM,GAAG,EAAE,GAAG,IAAI;AAAA,EACjE,OAAO;AACL,aAAS,MAAM,QAAQ,IAAI,GAAG,MAAM,GAAG,IAAI;AAAA,EAC7C;AACA,SAAO;AACT;AAEO,SAAS,cAAc,QAA4C,OAAO,SAAS,WAAW,GAAW;AAC9G,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,MAAI;AACJ,MAAI,OAAO,WAAW,YAAY,OAAO,WAAW,IAAI,GAAG;AACzD,aAAS,MAAM,QAAQ,IAAI,GAAG,eAAe,MAAM,GAAG,EAAE,GAAG,IAAI;AAAA,EACjE,OAAO;AACL,aAAS,MAAM,QAAQ,IAAI,GAAG,MAAM,GAAG,IAAI;AAAA,EAC7C;AACA,SAAO,OAAO,MAAM,EAAE,OAAO;AAAA,IAC3B,mBAAmB;AAAA,IACnB,cAAc;AAAA,IACd;AAAA,EACF,CAAC;AACH;AAEO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKW;AACT,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,IAAI,UAAU,MAAM,EAAE,aAAa,IAAI,UAAU,KAAK,CAAC;AACrE,MAAI,UAAU,QAAQ,GAAG;AACvB,QAAI,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG;AAC9B,iBAAW;AAAA,IACb,OAAO;AACL,iBAAW;AAAA,IACb;AAAA,EACF;AAEA,SAAO,SAAI,OAAO,KAAK,EACpB,OAAO;AAAA,IACN,mBAAmB;AAAA,IACnB,cAAc;AAAA,IACd;AAAA,EACF,CAAC,EACA,QAAQ,OAAO,GAAG,KAAK,SAAS,YAAY;AACjD;AAEO,SAAS,aAAa,OAAwB,WAAW,GAAW;AACzE,SAAO,OAAO,KAAK,EAAE,OAAO;AAAA,IAC1B,mBAAmB;AAAA,IACnB,cAAc;AAAA,IACd;AAAA,EACF,CAAC;AACH;AAEO,SAAS,cAAc,QAAoC,WAAW,GAAW;AACtF,QAAM,KAAK,IAAI,UAAU,QAAQC,aAAY,MAAM,IAAI,KAAK,EAAE;AAC9D,QAAM,QAAQ,GAAG,IAAI,IAAI,UAAU,GAAQ,CAAC,EAAE,SAAS,EAAE;AACzD,SAAO,OAAO,KAAK,EAAE,OAAO;AAAA,IAC1B,mBAAmB;AAAA,IACnB,cAAc;AAAA,IACd;AAAA,EACF,CAAC;AACH;AAQO,IAAM,qBAAqB,CAAC,OAAoC,aAA6B;AAClG,MAAI;AACJ,MAAI,EAAE,iBAAiB,YAAY;AACjC,SAAK,IAAI,UAAU,KAAK,EAAE,UAAU,IAAI,UAAU,EAAE,EAAE,IAAI,QAAQ,CAAC;AAAA,EACrE,OAAO;AACL,SAAK;AAAA,EACP;AAEA,QAAM,MAAM,GAAG,QAAQ;AACvB,QAAM,CAAC,KAAK,GAAG,IAAI,IAAI,MAAM,GAAG;AAChC,MAAI,gBAAgB;AAEpB,MAAI,IAAI,SAAS,IAAI;AACnB,WAAO,GAAG,cAAc,CAAC;AAAA,EAC3B;AAEA,MAAI,IAAI,SAAS,GAAG;AAClB,oBAAgB,KAAK,IAAI,KAAK,IAAI,SAAS,IAAI,CAAC;AAAA,EAClD;AAEA,MAAI,OAAO,gBAAgB,GAAG;AAC5B,UAAM,UAAU,IAAI,MAAM,GAAG,aAAa;AAC1C,WAAO,IAAI,UAAU,GAAG,OAAO,SAAS,EAAE,QAAQ;AAAA,EACpD;AAEA,SAAO;AACT;;;ACzJA,SAAS,eAAAC,oBAAmB;AAE5B;AAAA,EACE;AAAA,EACA;AAAA,OAIK;AACP,SAAS,aAAAC,kBAAiB;AAGnB,SAAS,cAAc,MAA4C;AACxE,MAAI,OAAO,QAAQ,UAAU;AAC3B,WAAO,SAAS;AAAA,EAClB,WAAW,OAAO,QAAQ,UAAU;AAClC,WAAO,OAAO,IAAI,MAAM;AAAA,EAC1B;AACA,SAAO;AACT;AAEA,IAAM,aAAa,CAAC,UAA2B;AAC7C,MAAI,OAAO,UAAU,UAAU;AAC7B,QAAI,MAAM,WAAW,IAAI,GAAG;AAC1B,aAAO;AAAA,IACT,OAAO;AACL,aAAO,KAAK,IAAIC,WAAU,KAAK,EAAE,SAAS,EAAE;AAAA,IAC9C;AAAA,EACF,OAAO;AACL,WAAO,kBAAkB,KAAK;AAAA,EAChC;AACF;AAEO,SAAS,iBAAiB,QAAgC,WAAsC;AACrG,MAAI,OACF,UACA,UACA,MACA,IACA,OACA,MACA,MACA,SACA,sBACA,cACA,QACA;AAEF,QAAM,OAAOC,QAAO,SAAS;AAC7B,MAAI,QAAQ,CAACC,aAAY,OAAO,IAAI,GAAG;AACrC,WAAO,iBAAiB,OAAO,IAAI;AAAA,EACrC,OAAO;AACL,WAAO,OAAO;AAAA,EAChB;AACA,MAAI,OAAO,IAAI;AACb,QAAI,QAAQ,CAACA,aAAY,OAAO,EAAE,GAAG;AACnC,WAAK,iBAAiB,OAAO,EAAE;AAAA,IACjC,OAAO;AACL,WAAK,OAAO;AAAA,IACd;AAAA,EACF;AAEA,MAAI,OAAO,OAAO,CAAC,OAAO,UAAU;AAClC,eAAW,WAAW,OAAO,GAAG;AAAA,EAClC,WAAW,OAAO,UAAU;AAC1B,eAAW,WAAW,OAAO,QAAQ;AAAA,EACvC;AACA,MAAI,OAAO,OAAO;AAChB,YAAQ,WAAW,OAAO,KAAK;AAAA,EACjC;AACA,MAAI,OAAO,MAAM;AACf,WAAO,kBAAkB,OAAO,IAAI;AAAA,EACtC;AACA,MAAI,OAAO,SAAS;AAClB,cAAU,WAAW,OAAO,OAAO;AAAA,EACrC,OAAO;AACL,cAAU,WAAW,UAAU,EAAE;AAAA,EACnC;AACA,MAAI,OAAO,OAAO;AAChB,YAAQ,WAAW,OAAO,KAAK;AAAA,EACjC;AACA,MAAI,0BAA0B,UAAU,OAAO,sBAAsB;AACnE,2BAAuB,WAAW,OAAO,oBAAoB;AAAA,EAC/D;AACA,MAAI,kBAAkB,UAAU,OAAO,cAAc;AACnD,mBAAe,WAAW,OAAO,YAAY;AAAA,EAC/C;AACA,MAAI,OAAO,UAAU;AACnB,eAAW,WAAW,OAAO,QAAQ;AAAA,EACvC;AAEA,MAAI,OAAO,QAAQ,OAAO,SAAS,GAAG;AACpC,WAAO,WAAW,OAAO,IAAI;AAAA,EAC/B,OAAO;AACL,QACE,0BAA0B,UAC1B,OAAO,wBACP,kBAAkB,UAClB,OAAO,gBACP,sBAAsB,MAAM,GAC5B;AACA,aAAO;AAAA,IACT,WAAW,cAAc,UAAU,OAAO,UAAU;AAClD,aAAO;AAAA,IACT,OAAO;AACL,aAAO,sBAAsB,MAAM,IAAI,QAAQ;AAAA,IACjD;AAAA,EACF;AAEA,MAAI,OAAO,UAAU,CAAC,UAAU,UAAU,SAAS,EAAE,SAAS,OAAO,MAAM,GAAG;AAC5E,aAAS,OAAO;AAAA,EAClB,OAAO;AACL,aAAS;AAAA,EACX;AAEA,MAAI,OAAO,YAAY,CAAC,UAAU,OAAO,UAAU,MAAM,EAAE,SAAS,OAAO,QAAQ,GAAG;AACpF,eAAW,OAAO;AAAA,EACpB,OAAO;AACL,eAAW;AAAA,EACb;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAWO,SAAS,aAAa,SAA0B;AAErD,SAAO,WAAW,QAAQ,WAAW,MAAM,QAAQ,WAAW,IAAI;AACpE;AAEO,SAASC,QAAO,OAAuB;AAC5C,SAAO,MAAM,KAAK,YAAY,MAAM;AACtC;;;AF5IA,IAAM,qBAAqB,OAAO,gBAAuE;AACvG,QAAM,UAAU,OAAO,YAAY,WAAWC,cAAa,SAAS,OAAO;AAC3E,QAAM,SAAS;AAAA,IACb,GAAG;AAAA,IACH,MAAMA,cAAa,SAAS;AAAA,IAC5B;AAAA,EACF;AAEA,QAAM,QAAQC,qBAAoB,OAAO;AAEzC,MAAIC,WAAU,OAAO,IAAI,GAAG;AAC1B,WAAO,OAAO;AAAA,EAChB;AAEA,QAAM,QAAQ,iBAAiB,QAAQ,KAAK;AAE5C,MAAI,CAAC,MAAM,UAAU;AACnB,UAAM,WAAW,MAAM;AAAA,MACrB,EAAE,MAAM,MAAM,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,OAAO,MAAM,MAAM,KAAK;AAAA,MACvE;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,MAAM,IAAI,MAAM,GAAG;AAC5B,QAAI,CAAC,MAAM,wBAAwB,CAAC,MAAM,cAAc;AACtD,YAAM,SAAS,MAAM,qBAAqB,OAAO;AACjD,YAAM,eAAe,QAAQ,MAAM,OAAO,WAAW,QAAQ,cAAc,MAAM,CAAC;AAClF,YAAM,uBAAuB,QAAQ,MAAM,OAAO,WAAW,QAAQ,sBAAsB,MAAM,CAAC;AAAA,IACpG;AAAA,EACF,OAAO;AACL,QAAI,CAAC,MAAM,UAAU;AACnB,YAAM,SAAS,MAAM,qBAAqB,OAAO;AACjD,YAAM,WAAW,QAAQ,MAAM,OAAO,WAAW,QAAQ,cAAc,MAAM,CAAC;AAAA,IAChF;AAAA,EACF;AAEA,QAAM,SAAS,MAAMF,cAAa,SAAS,gBAAgB,KAAK;AAChE,SAAO;AACT;AAEA,IAAM,mBAAmB,OACvB,OAMA,YACoB;AACpB,MAAI,CAAC,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG;AACtC,WAAO,MAAM;AAAA,EACf;AACA,QAAM,SAAS,MAAMA,cAAa,SAAS,QAAQ;AAAA,IACjD;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ,CAAC,KAAK;AAAA,EAChB,CAAC;AACD,SAAO;AACT;AAEA,IAAM,uBAAuB,OAAO,YAA2C;AAC7E,QAAM,SAAS,MAAMA,cAAa,SAAS,QAAQ;AAAA,IACjD;AAAA,IACA,QAAQ,kBAAkB;AAAA,EAC5B,CAAC;AACD,SAAO;AACT;AAEA,IAAO,6BAAQ;;;AGlFf,SAAS,cAAc,eAAAG,oBAAmB;AAC1C,SAAS,gBAAgB,iBAAiB;AAC1C;AAAA,EACE,gBAAAC;AAAA,EACA;AAAA,EACA,uBAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,qBAAAC;AAAA,OAWK;AApBP;AAsBO,IAAM,cAAN,MAA6C;AAAA,EAA7C;AAwLL;AAvLA,SAAS,oBAAoB;AAI7B,uBAAc,OAAO,SAAqC,SAAoC;AAC5F,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,2BAAkB,OAAO,gBAAuE;AAC9F,YAAM,IAAI,MAAM,kCAAkC;AAAA,IACpD;AAEA,yBAAgB,OAA+D;AAAA,MAC7E;AAAA,MACA;AAAA,MACA;AAAA,IACF,MAIuB;AACrB,YAAM,IAAI,MAAM,gCAAgC;AAAA,IAClD;AAAA;AAAA,EAEA,IAAI,kBAAiC;AACnC,WAAOC,mBAAkBC,aAAY,EAAE,SAAS;AAAA,EAClD;AAAA,EAEA,IAAI,UAAkB;AACpB,WAAOD,mBAAkBC,aAAY,EAAE,SAAS;AAAA,EAClD;AAAA,EAEA,cAAuB;AACrB,WAAOD,mBAAkBC,aAAY,EAAE,SAAS,YAAY;AAAA,EAC9D;AAAA,EAEA,GAAG,OAAe,UAA0C;AAC1D,IAAAA,cAAa,SAAS,GAAG,OAAO,QAAQ;AACxC,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,OAAe,UAA0C;AAC5D,IAAAA,cAAa,SAAS,KAAK,OAAO,QAAQ;AAC1C,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,OAAe,UAA0C;AAC3D,IAAAA,cAAa,SAAS,IAAI,OAAO,QAAQ;AACzC,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,OAAe,UAA0C;AACtE,IAAAA,cAAa,SAAS,eAAe,OAAO,QAAQ;AACpD,WAAO;AAAA,EACT;AAAA,EAMQ,KAAK,OAAe;AAC1B,QAAI,UAAU,cAAc;AAC1B,WAAK,WAAW;AAAA,IAClB;AAAA,EACF;AAAA,EAKA,MAAM,SAA4B;AAChC,WAAO,MAAMD,mBAAkBC,aAAY,EAAE,SAAS,OAAO;AAAA,EAC/D;AAAA,EAEA,MAAM,aAAa;AACjB,WAAO,MAAMD,mBAAkBC,aAAY,EAAE,SAAS,WAAW;AAAA,EACnE;AAAA,EAEA,MAAM,QAAQ,OAAyC;AACrD,WAAO,MAAMD,mBAAkBC,aAAY,EAAE,SAAS,QAAQ,KAAK;AAAA,EACrE;AAAA,EAGA,MAAM,QAAQ,MAAuC;AAzGvD;AA0GI,UAAM,SAAS,KAAK;AACpB,QAAI,CAAC,QAAQ;AACX,YAAM,UAAU,cAAc,yCAAyC;AAAA,IACzE;AACA,QAAI,OAAO,OAAOC,aAAY,EAAE,SAAS,MAAsB,GAAG;AAChE,UAAI,WAAWA,cAAa,eAAe,WAAWA,cAAa,oBAAoB;AACrF,eAAO,MAAMF,mBAAkBC,aAAY,EAAE,SAAS,QAAQ,IAAI;AAAA,MACpE,WAAW,WAAWC,cAAa,YAAY;AAC7C,eAAO,KAAK;AAAA,MACd,WAAW,OAAO,WAAWA,cAAa,gBAAgB,GAAG;AAC3D,8BAAK,oCAAL;AAMA,cAAM,OAAO,cAAc,kBAAkB,MAAM;AACnD,cAAM,OAAO,QAAO,kCAAM,WAAN,mBAAe,MAAK,kCAAM,WAAN,mBAAe;AACvD,YAAI,YAAY,QAAO,kCAAM,WAAN,mBAAe,MAAK,kCAAM,WAAN,mBAAe;AAC1D,YAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,gBAAM,UAAU,cAAc,uDAAuD;AAAA,QACvF;AACA,YAAI,CAAC,WAAW;AACd,gBAAM,UAAU,cAAc,8CAA8C;AAAA,QAC9E;AACA,YAAI,KAAK,YAAY,QAAM,UAAK,oBAAL,mBAAsB,gBAAe;AAC9D,gBAAM,eAAe,aAAa;AAAA,QACpC;AACA,YAAI,OAAO,cAAc,UAAU;AACjC,sBAAY,KAAK,MAAM,SAAS;AAAA,QAClC;AACA,cAAM,OAAO,cAAc,OAAO,MAAM;AACxC,cAAM,UAAU,cAAc,oBAAoB,MAAM;AAExD,cAAM,SAAS,MAAM,KAAK,cAAc;AAAA,UACtC,MAAM;AAAA,UACN;AAAA,UACA;AAAA,QACF,CAAC;AACD,eAAO;AAAA,MACT,WAAW,OAAO,WAAWA,cAAa,YAAY,GAAG;AACvD,8BAAK,oCAAL;AACA,YAAI,WAAU,kCAAM,WAAN,mBAAe;AAC7B,cAAM,QAAO,kCAAM,WAAN,mBAAe;AAC5B,YAAI,CAAC,WAAW,OAAO,YAAY,UAAU;AAC3C,gBAAM,UAAU,cAAc,mDAAmD;AAAA,QACnF;AACA,YAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,gBAAM,UAAU,cAAc,uDAAuD;AAAA,QACvF;AACA,YAAI,KAAK,YAAY,QAAM,UAAK,oBAAL,mBAAsB,gBAAe;AAC9D,gBAAM,eAAe,aAAa;AAAA,QACpC;AAEA,YAAI,CAACC,aAAY,OAAO,GAAG;AACzB,oBAAU,aAAa,OAAO,KAAK,OAAO,EAAE,SAAS,KAAK,CAAC;AAAA,QAC7D;AACA,cAAM,OAAO,cAAc,OAAO,MAAM;AACxC,cAAM,SAAS,MAAM,KAAK,YAAY,SAA8B,IAAI;AACxE,eAAO;AAAA,MACT,WAAW,WAAWD,cAAa,2BAA2B;AAC5D,eAAO,MAAMF,mBAAkBC,aAAY,EAAE,SAAS,QAAQ,IAAI;AAAA,MACpE,WAAW,WAAWC,cAAa,oBAAoB;AACrD,8BAAK,oCAAL;AACA,cAAM,UAAU,OAAO,KAAK,WAAW,KAAK,OAAO;AACnD,cAAM,QAAQE,qBAAoB,OAAO;AACzC,YAAI,CAAC,OAAO;AACV,gBAAM,eAAe,kBAAkB;AAAA,QACzC;AACA,cAAM,UAAS,UAAK,WAAL,mBAAc;AAC7B,YAAI,CAAC,QAAQ;AACX,gBAAM,UAAU,cAAc,uDAAuD;AAAA,QACvF;AACA,YAAIC,WAAU,OAAO,IAAI,GAAG;AAC1B,cAAIC,uBAAsB,MAAM,GAAG;AAEjC,mBAAO,OAAO;AAAA,UAChB,OAAO;AACL,mBAAO,OAAO;AAAA,UAChB;AAAA,QACF;AACA,YAAID,WAAU,OAAO,OAAO,GAAG;AAC7B,iBAAO,UAAU,KAAK,QAAQ,SAAS,EAAE;AAAA,QAC3C;AACA,YAAIA,WAAU,OAAO,KAAK,GAAG;AAC3B,iBAAO,QAAQ;AAAA,QACjB;AACA,YAAIA,WAAU,OAAO,IAAI,GAAG;AAC1B,iBAAO,OAAO;AAAA,QAChB;AACA,cAAM,SAAS,MAAM,KAAK,gBAAgB,MAAM;AAChD,eAAO;AAAA,MACT,OAAO;AACL,cAAM,eAAe,kBAAkB;AAAA,MACzC;AAAA,IACF,OAAO;AACL,aAAO,MAAML,mBAAkBC,aAAY,EAAE,SAAS,QAAQ,IAAI;AAAA,IACpE;AAAA,EACF;AAOF;AALE;AAAA,oBAAe,WAAG;AAChB,MAAI,CAAC,KAAK,YAAY,GAAG;AACvB,UAAM,eAAe,aAAa;AAAA,EACpC;AACF;;;AChNK,IAAM,cAAc,MAAM;AAC/B,QAAM,EAAE,SAAS,IAAI,gBAAgB;AACrC,SAAO;AAAA,IACL;AAAA,EACF;AACF;;;AL0BO,IAAM,cAAc,MAAM;AAjCjC;AAkCE,QAAM,WAAW,kBAAkB;AAEnC,QAAM,EAAE,QAAAM,QAAO,IAAI,UAAU;AAE7B,QAAM,CAAC,SAAS,UAAU,IAAIC,UAAiB,OAAOC,cAAa,SAAS,OAAO,CAAC;AAEpF,QAAM,CAAC,WAAW,YAAY,IAAID,UAAoBE,mBAAkB,YAAY,OAAO,KAAK,OAAO,CAAC;AAExG,QAAM,CAAC,SAAS,UAAU,IAAIF,UAASC,cAAa,SAAS,eAAe;AAE5E,QAAM,EAAE,SAAS,IAAI,YAAY;AAEjC,QAAM,EAAE,kBAAkB,IAAI,YAAY;AAE1C,QAAM,EAAE,aAAa,IAAI,gBAAgB;AAEzC,QAAM,EAAE,iBAAiB,IAAI,gBAAgB;AAE7C,QAAM,EAAE,SAAAE,SAAQ,IAAI,WAAW;AAE/B,QAAM,gBAAgBC,SAAQ,MAAM;AAtDtC,QAAAC;AAuDI,QACE,sBACA,qCAAU,iBAAiB,+BAC3BA,MAAA,aAAa,wBAAb,gBAAAA,IAAkC,yCACjCC,mBAAkB,MAAMC,UAAS,OAAOD,mBAAkB,MAAMC,UAAS,UAC1E;AACA,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,GAAG;AAAA,IACD,qCAAU,iBAAiB;AAAA,IAC3B;AAAA,KACA,kBAAa,wBAAb,mBAAkC;AAAA,EACpC,CAAC;AAED,EAAAC,WAAU,MAAM;AACd,UAAM,iBAAiB,CAACC,aAAoB;AAC1C,iBAAW,OAAOA,QAAO,CAAC;AAAA,IAC5B;AACA,IAAAR,cAAa,SAAS,GAAG,gBAAgB,cAAc;AAEvD,UAAM,YAAY,MAAM;AACtB,iBAAWA,cAAa,SAAS,eAAe;AAAA,IAClD;AACA,IAAAA,cAAa,SAAS,GAAG,WAAW,SAAS;AAE7C,UAAM,oBAAoB,CAAC,aAAuB;AAChD,UAAI,SAAS,IAAI;AACf,mBAAW,SAAS,EAAE;AAAA,MACxB;AAAA,IACF;AACA,IAAAA,cAAa,SAAS,GAAG,mBAAmB,iBAAiB;AAE7D,UAAM,eAAe,MAAM;AACzB,iBAAW,IAAI;AAAA,IACjB;AACA,IAAAA,cAAa,SAAS,GAAG,cAAc,YAAY;AAEnD,WAAO,MAAM;AACX,MAAAA,cAAa,SAAS,IAAI,gBAAgB,cAAc;AACxD,MAAAA,cAAa,SAAS,IAAI,WAAW,SAAS;AAC9C,MAAAA,cAAa,SAAS,IAAI,mBAAmB,iBAAiB;AAC9D,MAAAA,cAAa,SAAS,IAAI,cAAc,YAAY;AAAA,IACtD;AAAA,EACF,GAAG,CAACE,QAAO,CAAC;AAEZ,EAAAK,WAAU,MAAM;AACd,QAAI,SAAS;AACX,mBAAaN,mBAAkB,YAAY,OAAO,KAAK,OAAO,CAAC;AAAA,IACjE;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,qBAAqB,MAAM;AAC/B,IAAAQ,OAAMT,eAAc,oBAAoB;AACxC,IAAAS,OAAMC,aAAY,GAAG,UAAU,SAAS,CAAC;AACzC,IAAAD,OAAMT,cAAa,SAAS,iBAAiB,6BAA6B;AAAA,EAC5E;AAEA,QAAM,WAAWW;AAAA,IACf,OAAU,UAA0D;AAClE,yBAAmB;AACnB,YAAM,SAAS,MAAM,IAAI,QAAW,CAAC,SAAS,WAAW;AACvD,YAAIb,QAAO,+CAA6C,IAAI,GAAG;AAC7D,iBAAO,UAAU,QAAQ,MAAM,CAAC;AAAA,QAClC,OAAO;AACL,UAAAA,QAAO,wCAAsC,CAAC,aAAa;AACzD,gBAAI,SAAS,OAAO;AAClB,qBAAO,SAAS,KAAK;AAAA,YACvB,OAAO;AACL,sBAAQ,SAAS,MAAM;AAAA,YACzB;AACA,6BAAiB,EAAE,sBAAsB,MAAM,CAAC;AAAA,UAClD,CAAC;AACD,mDAA2B;AAAA,YACzB,SAAS;AAAA,YACT;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,CAAC,UAAUA,OAAM;AAAA,EACnB;AAEA,QAAM,cAAca;AAAA,IAClB,OAAO,SAAqC,SAAoC;AAC9E,UAAI,eAAe;AACjB,cAAM,SAAS,MAAMX,cAAa,SAAS,YAAY,kBAAkB,OAAO,GAAG,IAAI;AACvF,eAAO;AAAA,MACT,OAAO;AACL,cAAM,SAAS,MAAM,SAAiB;AAAA,UACpC,OAAO,kBAAkB,OAAO;AAAA,UAChC,QAAQ,OAAOY,cAAa,mBAAmBA,cAAa;AAAA,QAC9D,CAAC;AACD,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,EAC1B;AAEA,QAAM,gBAAgBD;AAAA,IACpB,OAA+D;AAAA,MAC7D;AAAA,MACA;AAAA,MACA;AAAA,IACF,MAIuB;AACrB,UAAI,eAAe;AACjB,cAAM,SAAS,MAAMX,cAAa,SAAS,cAAc,EAAE,MAAM,SAAS,KAAK,CAAC;AAChF,eAAO;AAAA,MACT,OAAO;AACL,cAAM,SAAS,MAAM,SAAiB;AAAA,UACpC,OAAO;AAAA,UACP,QAAQ,uBAAuB,EAAE,SAAS,KAAK,CAAC;AAAA,QAClD,CAAC;AACD,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,EAC1B;AAEA,QAAM,kBAAkBW;AAAA,IACtB,OAAO,gBAAqF;AAC1F,UAAI,YAAY,WAAW,CAACE,qBAAoB,OAAO,YAAY,OAAO,CAAC,GAAG;AAC5E,cAAM,IAAI,MAAM,gBAAgB,YAAY,2BAA2B;AAAA,MACzE;AAEA,UAAI,eAAe;AACjB,cAAM,SAAS,MAAM,2BAAmB,WAAW;AACnD,eAAO;AAAA,MACT,OAAO;AACL,cAAM,SAAS,MAAM,SAAiB;AAAA,UACpC,OAAO,EAAE,GAAG,aAAa,MAAM,SAAS,SAAS,YAAY,WAAW,QAAQ;AAAA,UAChF,QAAQD,cAAa;AAAA,QACvB,CAAC;AACD,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,CAAC,SAAS,SAAS,UAAU,aAAa;AAAA,EAC5C;AAEA,QAAM,cAAcD,aAAY,OAAO,OAAmC;AACxE,UAAMV,mBAAkBD,eAAc,oBAAoB,EAAE,SAAS,YAAY,EAAE;AAAA,EACrF,GAAG,CAAC,CAAC;AAEL,QAAM,SAASW,aAAY,YAA6B;AACtD,UAAM,SAAS,MAAMV,mBAAkBD,eAAc,oBAAoB,EAAE,SAAS,OAAO;AAC3F,WAAO,OAAO;AAAA,EAChB,GAAG,CAAC,CAAC;AAEL,QAAM,WAAWG,SAAQ,MAAmB;AAhN9C,QAAAC,KAAA;AAiNI,QAAI,SAAS,OAAKA,MAAA,OAAO,aAAP,gBAAAA,IAAiB,WAAU;AAC3C,cAAO,YAAO,aAAP,mBAAiB;AAAA,IAC1B,OAAO;AACL,YAAM,kBAAkB,IAAI,YAAY;AACxC,sBAAgB,cAAc;AAC9B,sBAAgB,gBAAgB;AAChC,sBAAgB,kBAAkB;AAClC,aAAO;AAAA,IACT;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,EAAAG,WAAU,MAAM;AACd,QAAI,UAAU;AACZ,eAAS,cAAc;AACvB,eAAS,gBAAgB;AACzB,eAAS,kBAAkB;AAAA,IAC7B;AAAA,EACF,GAAG,CAAC,UAAU,aAAa,eAAe,eAAe,CAAC;AAE1D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,uBAAuB,EAAE,SAAS,KAAK,GAA8D;AAC5G,MAAI,qBAAqB,OAAO,SAAS;AACvC,WAAOK,cAAa;AAAA,EACtB,WAAW,qBAAqB,OAAO,SAAS;AAC9C,WAAOA,cAAa;AAAA,EACtB,OAAO;AACL,WAAO,OAAOA,cAAa,yBAAyBA,cAAa;AAAA,EACnE;AACF;;;AMzPA,SAAS,aAAAE,aAAW,kBAAkB;AAE/B,IAAM,eAAe,MAAM;AAChC,QAAM,CAAC,SAAS,UAAU,IAAI,WAAW,MAAM,MAAM,KAAK;AAC1D,EAAAA,YAAU,YAAY,CAAC,UAAU,CAAC;AAClC,SAAO;AACT;;;ACNA;AAAA,EACE,YAAAC;AAAA,EACA;AAAA,EACA,SAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,0BAAAC;AAAA,EACA,eAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA;AAAA,OACK;AAEP,SAAS,eAAAC,cAAa,aAAAC,aAAW,WAAAC,UAAS,YAAAC,iBAAgB;;;ACTnD,IAAM,eAAN,MAAmB;AAAA,EAAnB;AACL,SAAS,oBAAoB;AAI7B,gBAAO;AACP,eAAM;AACN,gBAAO;AAsDP,2BAAkB,OAChB,aACA,YACe;AACf,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,+BAAsB,OACpB,cACA,YACiB;AACjB,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,kCAAyB,OACvB,aACA,YACmC;AACnC,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,uBAAc,OAAO,YAA4D;AAC/E,YAAM,IAAI,MAAM,8BAA8B;AAAA,IAChD;AAEA,uBAAc,OAAO,YAAoB;AAzF3C;AA0FI,cAAM,YAAO,iBAAP,mBAAqB,OAAO,YAAY;AAAA,IAChD;AAAA;AAAA,EA/EA,GAAG,OAAe,UAA0C;AAZ9D;AAaI,iBAAO,iBAAP,mBAAqB,OAAO,GAAG,OAAO;AACtC,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,OAAe,UAA0C;AAjBhE;AAkBI,iBAAO,iBAAP,mBAAqB,OAAO,KAAK,OAAO;AACxC,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,OAAe,UAA0C;AAtB/D;AAuBI,iBAAO,iBAAP,mBAAqB,OAAO,IAAI,OAAO;AACvC,WAAO;AAAA,EACT;AAAA,EAEA,eAAe,OAAe,UAA0C;AA3B1E;AA4BI,iBAAO,iBAAP,mBAAqB,OAAO,eAAe,OAAO;AAClD,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,cAAuB;AAhC7B;AAiCI,YAAO,kBAAO,iBAAP,mBAAqB,OAAO,gBAA5B,YAA2C;AAAA,EACpD;AAAA,EAEA,IAAI,aAAsB;AApC5B;AAqCI,YAAO,kBAAO,iBAAP,mBAAqB,OAAO,eAA5B,YAA0C;AAAA,EACnD;AAAA,EAEA,IAAI,YAAqB;AAxC3B;AAyCI,YAAO,kBAAO,iBAAP,mBAAqB,OAAO,cAA5B,YAAyC;AAAA,EAClD;AAAA,EAEA,IAAI,YAA8B;AA5CpC;AA6CI,YAAO,kBAAO,iBAAP,mBAAqB,OAAO,cAA5B,YAAyC;AAAA,EAClD;AAAA,EAEA,IAAI,kBAAiC;AAhDvC;AAiDI,YAAO,kBAAO,iBAAP,mBAAqB,OAAO,oBAA5B,YAA+C;AAAA,EACxD;AAAA,EAEA,IAAI,UAAkB;AApDxB;AAqDI,YAAO,kBAAO,iBAAP,mBAAqB,OAAO,YAA5B,YAAuC;AAAA,EAChD;AAAA,EAEA,MAAM,QAAQ,OAAqC;AAxDrD;AAyDI,YAAM,YAAO,iBAAP,mBAAqB,OAAO,QAAQ;AAAA,EAC5C;AAAA,EAEA,MAAM,aAA4B;AA5DpC;AA6DI,YAAM,YAAO,iBAAP,mBAAqB,OAAO;AAAA,EACpC;AAAA,EAgCA,MAAM,QAAQ,MAAuC;AA9FvD;AA+FI,YAAO,YAAO,iBAAP,mBAAqB,OAAO,QAAQ;AAAA,EAC7C;AACF;;;ADzEO,IAAM,YAAY,MAAM;AAxB/B;AAyBE,QAAM,WAAW,kBAAkB;AAEnC,QAAM,EAAE,QAAAC,QAAO,IAAI,UAAU;AAE7B,QAAM,CAAC,SAAS,UAAU,IAAIC,UAAiBC,cAAa,OAAO,OAAO;AAE1E,QAAM,CAAC,WAAW,YAAY,IAAID;AAAA,IAChCE,mBAAkB,eAAeD,cAAa,OAAO,OAAO,KAAK,MAAM;AAAA,EACzE;AAEA,QAAM,CAAC,SAAS,UAAU,IAAID,UAASC,cAAa,OAAO,eAAe;AAE1E,QAAM,EAAE,iBAAiB,IAAI,gBAAgB;AAE7C,QAAM,EAAE,SAAAE,SAAQ,IAAI,WAAW;AAE/B,QAAM,EAAE,SAAS,IAAI,YAAY;AAEjC,QAAM,EAAE,kBAAkB,IAAI,YAAY;AAE1C,QAAM,EAAE,aAAa,IAAI,gBAAgB;AAEzC,QAAM,gBAAgBC,SAAQ,MAAM;AA/CtC,QAAAC;AAgDI,QACE,sBACA,qCAAU,iBAAiB,+BAC3BA,MAAA,aAAa,wBAAb,gBAAAA,IAAkC,yCACjCC,mBAAkB,MAAMC,UAAS,OAAOD,mBAAkB,MAAMC,UAAS,UAC1E;AACA,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,GAAG;AAAA,IACD,qCAAU,iBAAiB;AAAA,IAC3B;AAAA,KACA,kBAAa,wBAAb,mBAAkC;AAAA,EACpC,CAAC;AAED,EAAAC,YAAU,MAAM;AA/DlB,QAAAH;AAgEI,UAAM,iBAAiB,CAACI,aAAoB;AAC1C,iBAAWA,QAAO;AAAA,IACpB;AACA,IAAAR,cAAa,OAAO,GAAG,gBAAgB,cAAc;AAErD,UAAM,YAAY,MAAM;AACtB,iBAAWA,cAAa,OAAO,eAAe;AAAA,IAChD;AACA,IAAAA,cAAa,OAAO,GAAG,WAAW,SAAS;AAE3C,gBAAWI,MAAAJ,cAAa,OAAO,YAApB,OAAAI,MAA+B,GAAG;AAE7C,UAAM,eAAe,MAAM;AACzB,iBAAW,IAAI;AAAA,IACjB;AACA,IAAAJ,cAAa,OAAO,GAAG,cAAc,YAAY;AAEjD,WAAO,MAAM;AACX,MAAAA,cAAa,OAAO,IAAI,gBAAgB,cAAc;AACtD,MAAAA,cAAa,OAAO,IAAI,WAAW,SAAS;AAC5C,MAAAA,cAAa,OAAO,IAAI,cAAc,YAAY;AAAA,IACpD;AAAA,EACF,GAAG,CAACE,QAAO,CAAC;AAEZ,EAAAK,YAAU,MAAM;AACd,QAAI,SAAS;AACX,UAAI,QAAQ,eAAe,OAAO;AAClC,UAAI,CAAC,SAAS,YAAY,KAAK;AAC7B,gBAAQ;AAAA,MACV;AACA,mBAAaN,mBAAkB,KAAK,CAAC;AAAA,IACvC;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,qBAAqB,MAAM;AAC/B,IAAAQ,OAAMT,eAAc,oBAAoB;AACxC,IAAAS,OAAMC,aAAY,GAAG,UAAU,SAAS,CAAC;AACzC,IAAAD,OAAMT,cAAa,OAAO,iBAAiB,6BAA6B;AAAA,EAC1E;AAEA,QAAM,WAAWW;AAAA,IACf,OAAU,UAA4E;AACpF,yBAAmB;AACnB,YAAM,SAAS,MAAM,IAAI,QAAW,CAAC,SAAS,WAAW;AACvD,YAAIb,QAAO,+CAA6C,IAAI,GAAG;AAC7D,iBAAO,UAAU,QAAQ,MAAM,CAAC;AAAA,QAClC,OAAO;AACL,UAAAA,QAAO,wCAAsC,CAAC,aAAa;AACzD,gBAAI,SAAS,OAAO;AAClB,qBAAO,SAAS,KAAK;AAAA,YACvB,OAAO;AACL,sBAAQ,SAAS,MAAM;AAAA,YACzB;AACA,6BAAiB,EAAE,sBAAsB,MAAM,CAAC;AAAA,UAClD,CAAC;AACD,mDAA8B;AAAA,YAC5B,SAAS;AAAA,YACT;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,QAAM,cAAca;AAAA,IAClB,OAAO,YAA4D;AACjE,UAAI,eAAe;AACjB,cAAM,SAAS,MAAMX,cAAa,OAAO,YAAY,OAAO;AAC5D,eAAO;AAAA,MACT,OAAO;AACL,cAAM,YAAY,MAAM,SAAqB;AAAA,UAC3C,OAAO;AAAA,UACP,QAAQ,gBAAgB;AAAA,QAC1B,CAAC;AACD,eAAO,EAAE,UAAU;AAAA,MACrB;AAAA,IACF;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,EAC1B;AAEA,QAAM,kBAAkBW;AAAA,IACtB,OAAqD,aAAgBH,aAAiC;AACpG,MAAAC,OAAM,CAACD,YAAWI,wBAAuBJ,QAAO,GAAG,gBAAgBA,2BAA0B;AAC7F,UAAI,eAAe;AACjB,cAAM,YAAY,MAAMR,cAAa,OAAO,gBAAgB,aAAaQ,QAAO;AAChF,eAAO;AAAA,MACT,OAAO;AACL,cAAM,YAAY,MAAM,SAAY;AAAA,UAClC,OAAO;AAAA,UACP,QAAQ,gBAAgB;AAAA,UACxB,SAAAA;AAAA,QACF,CAAC;AACD,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,EAC1B;AAEA,QAAM,sBAAsBG;AAAA,IAC1B,OAAqD,cAAmBH,aAAmC;AACzG,MAAAC,OAAM,CAACD,YAAWI,wBAAuBJ,QAAO,GAAG,gBAAgBA,2BAA0B;AAC7F,UAAI,eAAe;AACjB,cAAM,YAAY,MAAMR,cAAa,OAAO,oBAAoB,cAAcQ,QAAO;AACrF,eAAO;AAAA,MACT,OAAO;AACL,cAAM,YAAY,MAAM,SAAc;AAAA,UACpC,OAAO;AAAA,UACP,QAAQ,gBAAgB;AAAA,UACxB,SAAAA;AAAA,QACF,CAAC;AACD,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,EAC1B;AAEA,QAAM,yBAAyBG;AAAA,IAC7B,OACE,aACAH,aACmC;AACnC,MAAAC,OAAM,CAACD,YAAWI,wBAAuBJ,QAAO,GAAG,gBAAgBA,2BAA0B;AAC7F,UAAI,eAAe;AACjB,cAAM,SAAS,MAAMR,cAAa,OAAO,uBAAuB,aAAaQ,QAAO;AACpF,eAAO;AAAA,MACT,OAAO;AACL,cAAM,YAAY,MAAM,SAAiB;AAAA,UACvC,OAAO;AAAA,UACP,QAAQ,gBAAgB;AAAA,UACxB,SAAAA;AAAA,QACF,CAAC;AACD,eAAO,EAAE,UAAU;AAAA,MACrB;AAAA,IACF;AAAA,IACA,CAAC,UAAU,aAAa;AAAA,EAC1B;AAEA,QAAM,cAAcG,aAAY,OAAO,OAAe;AACpD,UAAMV,mBAAkBD,eAAc,oBAAoB,EAAE,OAAO,YAAY,EAAE;AAAA,EACnF,GAAG,CAAC,CAAC;AAEL,QAAM,SAASW,aAAY,YAA6B;AACtD,UAAMV,mBAAkBD,eAAc,oBAAoB,EAAE,OAAO,QAAQ;AAC3E,WAAOC,mBAAkBD,cAAa,OAAO,eAAe;AAAA,EAC9D,GAAG,CAAC,CAAC;AAEL,QAAM,SAASG,SAAQ,MAAM;AApN/B,QAAAC;AAqNI,QAAI,SAAS,OAAKA,MAAA,OAAO,aAAP,gBAAAA,IAAiB,SAAQ;AACzC,aAAO,OAAO,SAAS;AAAA,IACzB,OAAO;AACL,YAAM,eAAe,IAAI,aAAa;AACtC,mBAAa,cAAc;AAC3B,mBAAa,kBAAkB;AAC/B,mBAAa,sBAAsB;AACnC,mBAAa,yBAAyB;AACtC,aAAO;AAAA,IACT;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,EAAAG,YAAU,MAAM;AACd,QAAI,QAAQ;AACV,aAAO,cAAc;AACrB,aAAO,kBAAkB;AACzB,aAAO,sBAAsB;AAC7B,aAAO,yBAAyB;AAAA,IAClC;AAAA,EACF,GAAG,CAAC,QAAQ,aAAa,iBAAiB,qBAAqB,sBAAsB,CAAC;AAEtF,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;Ad/OA,IAAM,iBAAiB,CAAC,EAAE,SAAS,MAA+B;AAChE,QAAM,EAAE,SAAS,IAAI,YAAY;AAEjC,QAAM,EAAE,SAAS,IAAI,gBAAgB;AAErC,QAAM,EAAE,OAAO,IAAI,UAAU;AAE7B,QAAM,EAAE,SAAAM,SAAQ,IAAI,WAAW;AAE/B,QAAM,YAAYC,QAAO,KAAK;AAE9B,QAAM,EAAE,aAAa,IAAI,gBAAgB;AAEzC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,YAAY;AAEhB,MAAI,SAAS,KAAK,CAAC,UAAU,SAAS;AACpC,QAAI,OAAO,UAAU;AACnB,aAAO,SAAS,WAAW;AAC3B,aAAO,SAAS,SAAS;AAAA,IAC3B,OAAO;AACL,aAAO,WAAW,EAAE,UAAU,UAAU,QAAQ,OAAO;AAAA,IACzD;AACA,cAAU,UAAU;AACpB,UAAM,cAAc,kBAAkB;AACtC,WAAO,SAAS,SAAS,qBAAqB;AAC9C,WAAO,SAAS,OAAO,qBAAqB;AAC5C,YAAQ,IAAI,4BAA4B,UAAU,MAAM;AACxD,WAAO,cAAc,IAAI,YAAY,+BAA+B,CAAC;AAAA,EACvE;AAEA,EAAAC,YAAU,MAAM;AACd,UAAM,mBAAmB,CAAC,EAAE,SAAS,QAAQ,MAAM,MAAW;AAC5D,cAAQ,IAAI,yBAAyB,KAAK;AAC1C,MAAAF,SAAQ,KAAK,EACV,KAAK,CAACG,cAAa;AAClB,gBAAQA,SAAQ;AAAA,MAClB,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,eAAO,KAAK;AAAA,MACd,CAAC;AAAA,IACL;AACA,IAAAC,cAAa,GAAGC,eAAc,wBAAwB,gBAAgB;AACtE,IAAAD,cAAa,GAAGC,eAAc,sBAAsB,gBAAgB;AACpE,WAAO,MAAM;AACX,MAAAD,cAAa,IAAIC,eAAc,wBAAwB,gBAAgB;AACvE,MAAAD,cAAa,IAAIC,eAAc,sBAAsB,gBAAgB;AAAA,IACvE;AAAA,EACF,GAAG,CAACL,QAAO,CAAC;AAEZ,QAAMM,eAAcC,aAAY,MAAM;AACpC,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,CAAC;AAEb,EAAAL,YAAU,MAAM;AACd,QAAI,OAAO,UAAU;AACnB,aAAO,SAAS,YAAY;AAAA,QAC1B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,mBAAAM;AAAA,QACA,oBAAAC;AAAA,QACA,aAAAH;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAA;AAAA,EACF,CAAC;AAED,EAAAJ,YAAU,MAAM;AAEd,QAAI,YAAY,OAAO,WAAW,eAAe,aAAa,mBAAmB,OAAO;AACtF,YAAM,OAAO;AAAA,QACX,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AACA,YAAM,mBAAmB,MAAM;AAC7B,eAAO;AAAA,UACL,IAAI,YAAY,4BAA4B;AAAA,YAC1C,QAAQ,OAAO,OAAO;AAAA,cACpB;AAAA,cACA;AAAA,YACF,CAAC;AAAA,UACH,CAAC;AAAA,QACH;AAAA,MACF;AACA,aAAO,iBAAiB,2BAA2B,gBAAgB;AACnE,uBAAiB;AACjB,aAAO,MAAM;AACX,eAAO,oBAAoB,2BAA2B,gBAAgB;AAAA,MACxE;AAAA,IACF;AAAA,EACF,GAAG,CAAC,UAAU,aAAa,cAAc,CAAC;AAE1C,SAAO,gBAAAQ,OAAA,cAAAA,OAAA,gBAAG,QAAS;AACrB;AAEA,IAAO,yBAAQ;;;AgBlIf,SAAS,qBAAAC,oBAAmB,oBAAAC,yBAAwB;AACpD,SAAS,aAAAC,mBAAiB;AAM1B,IAAM,oBAAoB,CAAC,EAAE,UAAU,MAA2B;AAChE,QAAM,EAAE,iBAAiB,IAAI,WAAW;AACxC,QAAM,EAAE,SAAS,IAAI,YAAY;AAEjC,EAAAC,YAAU,MAAM;AAXlB;AAYI,QAAI,aAAa,qBAAqB,eAAeC,kBAAiBC,mBAAkB,CAAC,KAAK,UAAU;AAEtG,mDAAW,uBAAX,mCAAgC,UAAU;AAAA,IAC5C;AAAA,EACF,GAAG,CAAC,kBAAkB,UAAU,SAAS,CAAC;AAC1C,SAAO;AACT;AAEA,IAAO,4BAAQ;;;AjC6Bf,IAAM,qBAAqBC,QAAM,KAAK,MAAM,OAAO,oCAAuB;AAC1E,IAAM,kBAAkBA,QAAM,KAAK,MAAM,OAAO,iCAAmC;AACnF,IAAM,qBAAqBA,QAAM,KAAK,MAAM,OAAO,oCAAsC;AACzF,IAAM,qBAAqBA,QAAM,KAAK,MAAM,OAAO,oCAAsC;AACzF,IAAM,wBAAwBA,QAAM,KAAK,MAAM,OAAO,uCAAyC;AAExF,IAAM,sBAAqD;AAAA,EAChE,WAAW;AAAA,EACX,UAAU;AAAA,EACV,UAAU;AAAA,EACV,qBAAqB;AAAA,IACnB,sCAAsC;AAAA,IACtC,sCAAsC;AAAA,EACxC;AAAA,EACA,aAAa;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,EACf;AAAA,EACA,QAAQ,EAAE,SAAS,MAAM,WAAW,QAAQ;AAC9C;AA6BO,IAAM,gBAAgB,cAAkC,IAAI;AAEnE,IAAM,SAAS,IAAI,aAAa;AAChC,OAAO,gBAAgB,GAAG;AAEnB,IAAM,0BAA0B,CAAC,UAAwE;AAtGhH;AAuGE,QAAM,CAAC,UAAU,YAAY,IAAIC,UAA+B;AAChE,QAAM,cAAcC,QAA6B,QAAQ;AAEzD,QAAM,cAAc,CAAC,SAA+B;AAClD,iBAAa,IAAI;AACjB,gBAAY,UAAU;AAAA,EACxB;AAEA,QAAM,CAAC,MAAM,OAAO,IAAID,UAAmB,IAAI;AAC/C,QAAM,UAAUD,QAAM,OAAuB,IAAI;AAEjD,QAAM,CAAC,QAAQ,SAAS,IAAIC,UAAc;AAAA,IACxC,WAAW;AAAA,MACT;AAAA,QACE,MAAM;AAAA,QACN,WAAW,MAAM,OAAO;AAAA,QACxB,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,WAAW,MAAM,OAAO;AAAA,QACxB,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,WAAW,MAAM,OAAO;AAAA,QACxB,cAAc;AAAA,MAChB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,WAAW,MAAM,OAAO;AAAA,QACxB,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,CAAC,cAAc,eAAe,IAAI,YAAkC,MAAM,OAAO;AAEvF,QAAM,CAAC,uBAAuB,wBAAwB,IAAIA,UAAS,KAAK;AAExE,QAAM,CAAC,4BAA4B,6BAA6B,IAAIA,UAAc;AAElF,QAAM,CAAC,eAAe,gBAAgB,IAAIA,UAA4B,EAAE,SAAS,MAAM,CAAC;AAExF,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,UAA+B;AAAA,IAC3E,SAAS;AAAA,EACX,CAAC;AAED,QAAM,sBAAsBD,QAAM,OAAY,KAAK;AAEnD,QAAM,CAAC,eAAe,gBAAgB,IAAIC,UAAwB,EAAE,SAAS,MAAM,CAAC;AAEpF,QAAM,CAAC,oBAAoB,sBAAsB,IAAIA,UAA6B;AAElF,QAAM,wBAAwBC,QAAY,IAAI;AAE9C,QAAM,wBAAwB,CAAC,SAA8B;AAC3D,2BAAuB,IAAI;AAC3B,0BAAsB,UAAU;AAAA,EAClC;AAEA,QAAM,CAAC,kBAAkB,mBAAmB,IAAID,UAA2B,SAAS;AAEpF,QAAM,4BAA4B,CAAC,SAAkB,UAAgB;AACnE,kCAA8B,KAAK;AACnC,6BAAyB,OAAO;AAAA,EAClC;AAEA,QAAM,sBAAsB,CAACE,WAAgC;AAC3D,uBAAmBA,MAAK;AAAA,EAC1B;AAEA,QAAM,aAAa,MAAM;AACvB,UAAM,MAAM,OAAO,UAAU,IAAI,CAAC,SAAc;AAhLpD,UAAAC;AAiLM,cAAOA,MAAA,6BAAM,cAAN,gBAAAA,IAAA;AAAA,IACT,CAAC;AACD,YAAQ,IAAI,GAAG,EAAE,KAAK,CAACC,YAAgB;AACrC,YAAM,YAAYA,QAAO,IAAI,CAAC,SAAc;AAC1C,eAAO;AAAA,UACL,cAAc,KAAK;AAAA,QACrB;AAAA,MACF,CAAC;AACD,gBAAU;AAAA,QACR;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAEA,QAAM,CAAC,cAAc,eAAe,IAAI,YAA2B,EAAE,MAAM,IAAI,CAAC;AAChF,QAAM,CAAC,eAAe,gBAAgB,IAAI,YAA4B;AAAA,IACpE,UAAU;AAAA,IACV,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,UAAU;AAAA,IACV,UAAU;AAAA,EACZ,CAAC;AAED,QAAM,iBAAiBC;AAAA,IACrB,CAAC,KAAsB,YAA8B;AACnD,UAAI,OAAO,QAAQ,YAAY,QAAQ,KAAK;AAC1C,cAAM,IAAI,QAAQ,OAAO,EAAE;AAAA,MAC7B;AAEA,cAAQ,IAAI,kBAAkB,KAAK,OAAO;AAE1C,UAAI,EAAE,QAAQ,IAAI;AAElB,UAAI,CAAC,SAAS;AACZ,kBAAU,CAAC;AAAA,MACb;AAEA,WAAI,mCAAS,UAAS,MAAM;AAC1B,YACE,OAAO,QAAQ,YACf,CAAC,CAAC,QAAQ,KAAK,CAAC,SAAc,KAAK,KAAK,QAAQ,OAAO,EAAE,MAAO,IAAe,QAAQ,OAAO,EAAE,CAAC,GACjG;AACA,gBAAM,QAAQ,UAAU,CAAC,SAAS,KAAK,SAAS,GAAG,IAAI,QAAQ,SAAS;AAAA,QAC1E;AAAA,MACF;AAEA,UAAI,OAAO,QAAQ,UAAU;AAC3B,YAAI,+BAA0B,+BAA0B,CAACC,aAAY,GAAG;AACtE,gBAAM,UAAU,SAAS;AAAA,QAC3B;AAEA,cAAM,EAAE,UAAU,OAAO,QAAQ,CAAC,EAAE,IAAI,WAAW,CAAC;AAEpD,YAAI,QAAQ,UAAU,SAAS;AAC7B,kBAAQ,IAAI;AAAA,QACd;AAEA,gBAAQ,KAAK;AAAA,UACX,MAAM;AAAA,UACN;AAAA,UACA,UAAU,IAAI,KAAK,EAAE,QAAQ;AAAA,QAC/B,CAAC;AAED,wBAAgB;AAAA,UACd,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH,WAAW,OAAO,QAAQ,YAAY,QAAQ,SAAS,GAAG;AACxD,iBAAS,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,GAAG,KAAK;AACtC,kBAAQ,IAAI;AAAA,QACd;AAEA,YAAI,QAAQ,WAAW,GAAG;AACxB,2BAAiB;AAAA,YACf,sBAAsB;AAAA,UACxB,CAAC;AACD;AAAA,QACF;AAEA,cAAM,QAAQ,QAAQ,QAAQ,SAAS;AACvC,wBAAgB;AAAA,UACd,MAAM,+BAAO;AAAA,UACb,SAAS;AAAA,UACT,OAAO,+BAAO;AAAA,UACd;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,CAAC,cAAc,kBAAkB,eAAe;AAAA,EAClD;AAEA,QAAM,qBAAqBD,aAAY,MAAM;AA9Q/C,QAAAF,KAAAI,KAAAC,KAAAC,KAAAC,KAAAC,KAAAC;AA+QI,SAAIT,MAAA,qCAAU,qBAAV,gBAAAA,IAA4B,0BAA0B;AACxD;AAAA,IACF;AACA,QAAI,GAACI,MAAA,qCAAU,qBAAV,gBAAAA,IAA4B,UAAS,GAACC,MAAA,qCAAU,qBAAV,gBAAAA,IAA4B,QAAO;AAC5E,qBAAe,iBAAiB;AAAA,QAC9B,OAAO;AAAA,UACL,cAAa,qCAAU,SAAQ,UAAU;AAAA,UACzC,YAAY;AAAA,UACZ,aAAa;AAAA,QACf;AAAA,MACF,CAAC;AACD;AAAA,IACF;AACA,UAAIC,MAAA,qCAAU,qBAAV,gBAAAA,IAA4B,YAASC,MAAA,qCAAU,qBAAV,gBAAAA,IAA4B,QAAO;AAC1E,gCAA0B,IAAI;AAAA,IAChC,OAAO;AACL,qBAAe,yBAAyB;AAAA,QACtC,OAAO;AAAA,UACL,WAASC,MAAA,qCAAU,qBAAV,gBAAAA,IAA4B,YAASC,MAAA,qCAAU,qBAAV,gBAAAA,IAA4B;AAAA,QAC5E;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,UAAU,cAAc,CAAC;AAE7B,QAAM,4BAA4BP,aAAY,MAAM;AAClD,YAAQ,IAAI,iBAAiB,eAAe;AAE5C,UAAMQ,YAAW,YAAY;AAC7B,UAAMC,sBAAqB,sBAAsB;AAEjD,QAAI;AACJ,QAAIA,uBAAsB,uBAAe,gBAAgBA,mBAAkB,GAAG;AAC5E,UAAIC,oBAAmB,GAAG;AACxB,YAAI,SAASD,oBAAmB,KAAK,GAAG;AACtC,gBAAM,UAAWA,oBAAmB,cAAsC;AAC1E,yDAAoC;AAAA,YAClC,OAAO;AAAA,cACL,QAAQE,iBAAgB;AAAA,cACxB,OAAOC,QAAO,OAAO,OAAO;AAAA,cAC5B,wBAAwB;AAAA,YAC1B;AAAA,UACF,CAAC;AAAA,QACH,OAAO;AACL,iCACG,gBAAgBH,oBAAmB,OAAO,aAAa,OAAO,EAC9D,KAAK,CAAC,YAAY;AACjB,2DAAiC;AAAA,cAC/B,OAAO;AAAA,gBACL,QAAQA,oBAAmB,cAAc,OACrCI,cAAa,mBACbA,cAAa;AAAA,gBACjB,OAAO,kBAAkB,OAAO;AAAA,gBAChC,wBAAwB;AAAA,cAC1B;AAAA,YACF,CAAC;AAAA,UACH,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,mBAAO,kCAAmC,KAAK;AAAA,UACjD,CAAC;AAAA,QACL;AACA;AAAA,MACF,OAAO;AACL,+BACG,UAAUJ,qBAAoB,aAAa,OAAO,EAClD,KAAK,CAAC,WAAW;AAChB,iBAAO,wCAAsC;AAAA,YAC3C,GAAGD;AAAA,YACH,eAAe;AAAA,UACjB,CAAC;AAAA,QACH,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,iBAAO,kCAAmC,KAAK;AAAA,QACjD,CAAC;AAAA,MACL;AAAA,IACF,OAAO;AACL,aAAO,wCAAsC;AAAA,QAC3C,GAAIA,aAAA,OAAAA,YAAYM,aAAY;AAAA,QAC5B,eAAe;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,gBAAgB,UAAU,aAAa,SAAS,kBAAkB,CAAC;AAEvE,QAAM,qBAAqB,MAAM;AAC/B,QAAI,OAAO,+CAA6C,IAAI,GAAG;AAC7D,aAAO,wCAAsC;AAAA,QAC3C,OAAO,UAAU,oBAAoB;AAAA,MACvC,CAAC;AAAA,IACH;AAEA,QAAI,OAAO,+CAA6C,GAAG;AACzD,WAAI,6CAAc,iCAA2B,CAAC,UAAU;AACtD,eAAO,kCAAmC,UAAU,oBAAoB,CAAC;AAAA,MAC3E,OAAO;AACL,eAAO,wCAAsC,QAAQ;AAAA,MACvD;AAAA,IACF;AAEA,qBAAiB;AAAA,MACf,sBAAsB;AAAA,IACxB,CAAC;AAAA,EACH;AAEA,QAAM,cAAc,MAAM;AArX5B,QAAAhB,KAAAI;AAsXI,QAAI,gBAAcJ,MAAA,QAAQ,YAAR,gBAAAA,IAAiB,cAAa;AAChD,UAAM,QAAOI,MAAA,QAAQ,YAAR,gBAAAA,IAAiB,aAAa;AAC3C,kBAAc,OAAO,KAAK,WAAW,EAAE,SAAS,QAAQ;AACxD,YAAQ,IAAI,eAAe,MAAM,YAAY,UAAU,GAAG,EAAE,IAAI,KAAK;AACrE,WAAO;AAAA,EACT;AAEA,QAAM,YAAYa,SAAQ,MAAM;AA7XlC,QAAAjB,KAAAI;AA8XI,QAAI,QAAQ;AACZ,QAAI,CAAC,SAAS,GAAG;AACf,YAAM,iBAAiB,OAAO,iBAAiB,OAAO,SAAS,IAAI,EAAE;AACrE,YAAM,eACJA,OAAAJ,MAAA,MAAM,YAAN,gBAAAA,IAAe,gBAAf,gBAAAI,IAA4B,eAC5B,kBACA;AAEF,cAAQ;AAAA;AAAA,2DAE6C;AAAA;AAAA;AAAA,IAGvD;AAEA,WAAO;AAAA,EACT,GAAG,EAAC,iBAAM,YAAN,mBAAe,gBAAf,mBAA4B,UAAU,CAAC;AAG3C,QAAM,mBAAmBa,SAAQ,MAAM;AAjZzC,QAAAjB;AAkZI,UAAM,YAAY,aAAa;AAC/B,UAAM,cAAc,aAAa,eAAe,CAAC;AAEjD,UAAM,QAAQ;AAAA,MACZ,GAAG,OAAO;AAAA,QACR,OAAO,KAAK,eAAe,CAAC,CAAC,EAC1B,OAAO,CAAC,QAAQ,QAAQ,OAAO,EAC/B,IAAI,CAAC,QAAQ;AACZ,iBAAO,CAAC,MAAM,2CAAsB,SAAQ,EAAE;AAAA,QAChD,CAAC;AAAA,MACL;AAAA,MAEA,KAAIA,MAAA,2CAAa,UAAb,gBAAAA,IAAqB,cAAc,UAAU,UAAU,YAAW,CAAC;AAAA,IACzE;AAEA,UAAM,eAAe,OAAO,KAAK,KAAK,EACnC,OAAO,CAAC,QAAQ,QAAQ,YAAY,EACpC,IAAI,CAAC,QAAQ;AACZ,YAAM,OAAO,IAAI,QAAQ,YAAY,KAAK,EAAE,YAAY;AACxD,UAAI,QAAQ,MAAM;AAClB,UAAI,CAAC,MAAM,OAAO,KAAK,CAAC,GAAG;AACzB,gBAAQ,QAAQ;AAAA,MAClB;AACA,aAAO,KAAK,QAAQ;AAAA,IACtB,CAAC,EACA,KAAK,IAAI;AAEZ,QAAI,cAAc,QAAQ;AACxB,aAAO;AAAA,sBACS;AAAA;AAAA,IAElB;AAEA,WAAO;AAAA,cACG;AAAA;AAAA,EAEZ,GAAG,CAAC,aAAa,WAAW,aAAa,WAAW,CAAC;AAErD,EAAAkB,YAAU,MAAM;AACd,oBAAgB;AAAA,MACd,GAAG;AAAA,MACH,GAAG,MAAM;AAAA,MACT,qBAAqB;AAAA,QACnB,GAAG,oBAAoB;AAAA,QACvB,GAAG,MAAM,QAAQ;AAAA,MACnB;AAAA,MACA,aAAa;AAAA,QACX,GAAG,oBAAoB;AAAA,QACvB,GAAG,MAAM,QAAQ;AAAA,MACnB;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,MAAM,SAAS,eAAe,CAAC;AAEnC,EAAAA,YAAU,MAAM;AAvclB,QAAAlB;AAycI,QAAI,CAAC,SAAS,cAAc,gCAAgC,GAAG;AAC7D,YAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,YAAM,UAAU,IAAI,+BAA+B;AACnD,YAAM,eAAe;AAAA;AAAA;AAGrB,YAAM,YAAY;AAClB,eAAS,KAAK,YAAY,KAAK;AAAA,IACjC;AAEA,QAAI,cAAc,sBAAsB;AACtC,eAAS,KAAK,UAAU,IAAI,qBAAqB;AACjD,YAAM,YAAWA,MAAA,cAAc,uBAAd,gBAAAA,IAAkC;AAAA,QACjD;AAAA;AAEF,uBAAiB;AAAA,QACf;AAAA,MACF,CAAC;AAAA,IACH,OAAO;AAEL,iBAAW,MAAM;AACf,wBAAgB;AAAA,UACd,MAAM;AAAA,UACN,SAAS,CAAC;AAAA,QACZ,CAAC;AAAA,MACH,GAAG,GAAG;AACN,eAAS,KAAK,UAAU,OAAO,qBAAqB;AAAA,IACtD;AAAA,EACF,GAAG,CAAC,cAAc,sBAAsB,cAAc,kBAAkB,CAAC;AAEzE,QAAM,UAAU,QAAQ,SAAS,IAAI,OAAO,SAAS,IAAI;AAEzD,EAAAkB,YAAU,MAAM;AAEd,QAAI,WAAqB;AACzB,QAAI,SAAS,KAAK,eAAe,KAAK;AACpC,iBAAW;AAAA,IACb;AACA,qBAAiB;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,OAAO,CAAC;AAEZ,EAAAA,YAAU,MAAM;AACd,SAAI,6CAAc,UAAQ,6CAAc,SAAQ,KAAK;AAEnD,uBAAiB;AAAA,QACf,sBAAsB;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,6CAAc,IAAI,CAAC;AAEvB,EAAAA,YAAU,MAAM;AA7flB,QAAAlB,KAAAI;AA+fI,QAAI,QAAQ,SAAS;AACnB,YAAM,WAAW;AACjB,YAAM,YAAY;AAClB,UAAI,aAAa,KAAK,IAAI,UAAU,QAAOJ,MAAA,aAAa,gBAAb,gBAAAA,IAA0B,UAAU,CAAC;AAChF,UAAI,cAAc,KAAK,IAAI,WAAW,QAAOI,MAAA,aAAa,gBAAb,gBAAAA,IAA0B,WAAW,CAAC;AAEnF,UAAI,cAAc,YAAY,UAAU;AACtC,qBAAa,SAAS,KAAK;AAC3B,sBAAc,SAAS,KAAK,eAAe;AAAA,MAC7C;AACA,YAAM,KAAK,aAAa;AACxB,cAAQ,QAAQ,MAAM,YAAY,QAAQ,KAAK,IAAI;AACnD,cAAQ,QAAQ,MAAM,YAAY,gBAAgB,cAAc,IAAI;AACpE,cAAQ,QAAQ,MAAM,YAAY,eAAe,aAAa,IAAI;AAAA,IACpE;AAAA,EACF,GAAG;AAAA,IACD,QAAQ;AAAA,IACR,cAAc;AAAA,KACd,kBAAa,gBAAb,mBAA0B;AAAA,KAC1B,kBAAa,gBAAb,mBAA0B;AAAA,EAC5B,CAAC;AAED,EAAAc,YAAU,MAAM;AACd,eAAW,MAAM;AACf,cAAQ,aAAa,YAAY,IAAI;AAAA,IACvC,CAAC;AAAA,EACH,GAAG,CAAC,aAAa,QAAQ,CAAC;AAE1B,EAAAA,YAAU,MAAM;AA3hBlB,QAAAlB;AA4hBI,UAAM,yBAAyB,MAAM;AACnC,gFAA4C;AAAA,IAC9C;AACA,KAAAA,MAAA,iCAAQ,iBAAR,gBAAAA,IAAsB,GAAGmB,eAAc,uBAAuB;AAC9D,WAAO,MAAM;AAhiBjB,UAAAnB;AAiiBM,OAAAA,MAAA,iCAAQ,iBAAR,gBAAAA,IAAsB,IAAImB,eAAc,uBAAuB;AAAA,IACjE;AAAA,EACF,GAAG,CAAC,aAAa,SAAS,cAAc,CAAC;AAEzC,EAAAD,YAAU,MAAM;AAriBlB,QAAAlB,KAAAI;AAsiBI,UAAM,kBAAkB,CAACM,cAAuB;AAC9C,kBAAYA,SAAQ;AAAA,IACtB;AACA,UAAM,eAAe,CAAC,UAAkB;AACtC,kBAAY,MAAS;AACrB,UAAI,OAAO,+CAA6C,IAAI,GAAG;AAE7D,eAAO,wCAAsC;AAAA,UAC3C,OAAO,SAAS,UAAU,SAAS;AAAA,QACrC,CAAC;AAAA,MACH;AACA,uBAAiB;AAAA,QACf,sBAAsB;AAAA,MACxB,CAAC;AAAA,IACH;AAEA,KAAAV,MAAA,iCAAQ,iBAAR,gBAAAA,IAAsB,GAAGmB,eAAc,iBAAiB;AACxD,KAAAf,MAAA,iCAAQ,iBAAR,gBAAAA,IAAsB,GAAGe,eAAc,wBAAwB;AAC/D,WAAO,MAAM;AAxjBjB,UAAAnB,KAAAI;AAyjBM,OAAAJ,MAAA,iCAAQ,iBAAR,gBAAAA,IAAsB,IAAImB,eAAc,iBAAiB;AACzD,OAAAf,MAAA,iCAAQ,iBAAR,gBAAAA,IAAsB,IAAIe,eAAc,wBAAwB;AAAA,IAClE;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,MAAI,CAAC,oBAAoB,WAAWC,cAAa,UAAU,aAAa,QAAQ;AAE9E,IAAAA,cAAa,KAAK;AAAA,MAChB,WAAW,aAAa,aAAa,MAAM,QAAQ;AAAA,MACnD,WAAW,aAAa,aAAa,MAAM,QAAQ;AAAA,MACnD,OAAO,aAAa,SAAS,MAAM,QAAQ;AAAA,MAC3C,QAAQ,aAAa;AAAA,IACvB,CAAC;AACD,UAAM,OAAOJ,aAAY;AACzB,gBAAY,IAAI;AAChB,wBAAoB,UAAU;AAE9B,QAAI,MAAM;AACR,YAAM,EAAE,QAAQ,OAAO,SAAS,IAAI;AACpC,0BAAoB,QAAQ,QAAQ;AAAA,IACtC;AAAA,EACF;AAEA,EAAAE,YAAU,MAAM;AAhlBlB,QAAAlB;AAilBI,QAAIG,aAAY,GAAG;AACjB,mBAAa,EAAE,MAAM,CAAC,MAAM,QAAQ,MAAM,gBAAgB,CAAC,CAAC;AAAA,IAC9D;AACA,eAAW;AAEX,QAAI,GAACH,MAAA,+BAAO,YAAP,gBAAAA,IAAgB,OAAO,SAAQ;AAClC,YAAM,IAAI,MAAM,yCAAyC;AAAA,IAC3D;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,MAAI,CAAC,SAAS,GAAG;AAEf,WAAO,sBAAsBqB;AAE7B,WAAO,YAAY;AAEnB,WAAO,gBAAgBL;AAEvB,WAAO,gBAAgB;AAEvB,WAAO,aAAa;AAEpB,WAAO,4BAA4B,mCAAS;AAAA,EAC9C;AAEA,EAAAE,YAAU,MAAM;AACd,YAAQ,IAAI,2DAAoD,gBAAgB;AAAA,EAClF,GAAG,CAAC,gBAAgB,CAAC;AAErB,QAAM,CAAC,uBAAuB,wBAAwB,IAAIrB,UAAgC;AAC1F,QAAM,CAAC,mBAAmB,oBAAoB,IAAIA,UAA4B;AAE9E,iBAAe,YAAY;AACzB,QAAI,aAAa,WAAW,OAAO;AACjC,YAAM,EAAE,mBAAAyB,mBAAkB,IAAI,MAAM,OAAO;AAC3C,2BAAqBA,kBAAiB;AAAA,IACxC;AAAA,EACF,GAAG,CAAC,aAAa,MAAM,CAAC;AAExB,SACE,gBAAA1B,QAAA;AAAA,IAAC,cAAc;AAAA,IAAd;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IAEA,gBAAAA,QAAA,cAAC,8BAAgB,MAAM,QAAS;AAAA,IAE/B,SAAS,IACR,gBAAAA,QAAA,cAAC,WAAI,IAEL,gBAAAA,QAAA,cAAC,KAAK,KAAL,EAAS,MAAK,YACb,gBAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,IAAG;AAAA,QACH,WAAW,kCAAkC,aAAa;AAAA,QAC1D,aAAW,6CAAc;AAAA,QACzB,gCAA8B,WAAW;AAAA,QACzC,0BAAwBwB,cAAa;AAAA,QACrC,KAAK;AAAA,QACL,SAAS,CAAC,UAAU;AAClB,gBAAM,gBAAgB;AAAA,QACxB;AAAA;AAAA,MAGA,gBAAAxB,QAAA,cAAC,iBACC,gBAAAA,QAAA,cAAC,WAAM,aAAU,eAAa,SAAU,GACvC,CAAC,CAAC,OAAO,UAAU,GAAG,gBACrB,OAAO,UAAU,IAAI,CAAC,MAAW,UAAkB;AACjD,eACE,gBAAAA,QAAA,cAAC,WAAM,aAAW,KAAK,MAAM,cAAY,OAAO,KAAK,SAClD,KAAK,YACR;AAAA,MAEJ,CAAC,GACH,gBAAAA,QAAA,cAAC,WAAM,aAAU,iBAAe,gBAAsC,GAErE,cAAc,sBACb,gBAAAA,QAAA;AAAA,QAAC2B;AAAA,QAAA;AAAA,UACC,SAAS,cAAc;AAAA,UACvB,UAAU,cAAc;AAAA,UACxB,SAAS,MAAM;AACb,+BAAmB;AAAA,UACrB;AAAA,UACA,WAAU;AAAA,UACV,YAAY;AAAA,YACV,QAAQ;AAAA,YACR,OAAO,UAAS,kBAAa,gBAAb,mBAA0B,UAA+B;AAAA,YACzE,QAAQ,UAAS,kBAAa,gBAAb,mBAA0B,WAAgC;AAAA,YAC3E,aAAa;AAAA,YACb,gBAAgB;AAAA,YAChB,OAAO;AAAA,cACL,WAAU,kBAAa,gBAAb,mBAA0B;AAAA,YACtC;AAAA,YACA,UAAQ,kBAAa,gBAAb,mBAA0B,WAAU;AAAA,UAC9C;AAAA,UACA,aAAa;AAAA,YACX,QAAQ;AAAA,YACR,UAAU;AAAA,YACV,aAAa;AAAA,YACb,gBAAgB;AAAA,YAChB,MAAM;AAAA,YACN,UAAQ,kBAAa,gBAAb,mBAA0B,WAAU;AAAA,UAC9C;AAAA;AAAA,QAEA,gBAAA3B,QAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,6CAAc;AAAA,YACpB,OAAO,6CAAc;AAAA,YACrB,SAAS,6CAAc;AAAA,YACvB,UAAU,6CAAc;AAAA;AAAA,QAC1B;AAAA,MACF,GAGF,gBAAAA,QAAA,cAACA,QAAM,UAAN,MACC,gBAAAA,QAAA,cAAC,wBAAmB,GACpB,gBAAAA,QAAA,cAAC,yBAAsB,SAAS,uBAAuB,OAAO,4BAA4B,GAC1F,gBAAAA,QAAA,cAAC,mBAAgB,OAAO,iBAAiB,GACzC,gBAAAA,QAAA,cAAC,sBAAmB,OAAO,eAAe,GAC1C,gBAAAA,QAAA,cAAC,sBAAmB,MAAM,eAAe,CAC3C,GACA,gBAAAA,QAAA,cAAC,kCAAuB,YAAS,sBAAqB,kBAAoC,GACzF,MAAM,QAAQ,aAAa,gBAAAA,QAAA,cAAC,6BAAkB,WAAW,MAAM,QAAQ,WAAW,CACrF;AAAA,IAEF,CACF;AAAA,EAEJ;AAEJ;AAEO,IAAM,kBAAkB,MAAM;AACnC,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,sDAAsD;AAAA,EACxE;AACA,SAAO;AACT;AAEO,IAAM,mBAAmB,MAAM;AACpC,QAAM,EAAE,eAAe,kBAAkB,mBAAmB,IAAI,gBAAgB;AAChF,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEO,IAAM,kBAAkB,MAAM;AACnC,QAAM,EAAE,cAAc,gBAAgB,IAAI,gBAAgB;AAC1D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEO,IAAM,oBAAoB,MAAM;AACrC,QAAM,EAAE,eAAe,IAAI,gBAAgB;AAE3C,SAAO;AACT;AAOO,IAAM,kBAAkB,MAAM;AACnC,QAAM,EAAE,cAAc,gBAAgB,IAAI,gBAAgB;AAC1D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAEO,IAAM,YAAY,MAAM;AAC7B,QAAM,EAAE,QAAA4B,QAAO,IAAI,gBAAgB;AACnC,SAAO,EAAE,QAAAA,QAAO;AAClB;AAEO,IAAM,iBAAiB,MAAM;AAClC,QAAM,EAAE,KAAK,IAAI,gBAAgB;AACjC,QAAM,YAAY,aAAa,KAAK,YAAY,MAAmC,aAAa,IAAI;AAEpG,QAAM,CAAC,MAAM,OAAO,IAAIC,UAAoB,CAAC,CAAc;AAE3D,EAAAC,YAAU,MAAM;AACd,mBAAe,kBAAkB;AAC/B,YAAM,qBAAqB,MAAM;AAEjC,cAAQ,kBAAkB;AAAA,IAC5B;AAEA,oBAAgB;AAAA,EAClB,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,iBAAiBC;AAAA,IACrB,CAAC,QAAgB;AACf,YAAM,WAAW,IAAI,MAAM,GAAG;AAC9B,aAAO,IAAI,MAAM,UAAU,EAAE;AAAA,IAC/B;AAAA,IACA,CAAC,IAAI;AAAA,EACP;AAEA,SAAO,EAAE,GAAG,MAAM,GAAG,eAAe;AACtC;;;AkCpzBO,SAAS,KAAK,KAAa,OAAsB;AACtD,MAAI,OAAO;AACT,iBAAa,QAAQ,KAAK,KAAK;AAAA,EACjC,OAAO;AACL,eAAW,GAAG;AAAA,EAChB;AACF;AAEO,SAAS,KAAK,KAA4B;AAC/C,SAAO,aAAa,QAAQ,GAAG;AACjC;AAEO,SAAS,KAAK,KAAsB;AACzC,QAAM,QAAQ,aAAa,QAAQ,GAAG;AAEtC,MAAI,CAAC,OAAO;AACV,iBAAa,QAAQ,KAAK,GAAG;AAAA,EAC/B;AACA,SAAO,QAAQ,KAAK;AACtB;AAEO,SAAS,WAAW,KAAa;AACtC,eAAa,WAAW,GAAG;AAC7B;AAEO,IAAM,gBAAN,MAAoB;AAG3B;AAHa,cACJ,+BAA+B;AAD3B,cAEJ,8BAA8B;;;ACxBhC,IAAM,4BAA4B,CAAC,yCAA4D;AACpG,MACE,0DACA,kEACA;AACA,WAAO;AAAA,EACT,WAAW,wCAAwC,wDAAkE;AACnH,WAAO,CAAC,KAAK,cAAc,2BAA2B;AAAA,EACxD,OAAO;AACL,WAAO;AAAA,EACT;AACF;;;ApCGA,IAAM,WAAW,MAAM;AACrB,QAAM,WAAW,kBAAkB;AACnC,QAAM,EAAE,2BAA2B,cAAc,QAAAC,QAAO,IAAI,gBAAgB;AAC5E,QAAM,eAAeC;AAAA,IACnB,OAAO,MAAoB,YAAqB,SAAS;AArB7D;AAsBM,UAAI;AACF,YAAI,CAAC,KAAK,OAAO;AACf,eAAK,QAAQ,aAAa,OAAO;AAAA,QACnC;AACA,cAAM,WAAW,MAAMC,SAAQ,IAAI;AACnC,cAAM,EAAE,QAAQ,OAAO,SAAS,IAAI;AACpC,4BAAoB,SAAS,QAAQ;AAErC,wBAAgB;AAAA,UAEd,aAAa,WAAW;AAAA,QAC1B,CAAC;AACD,gBAAQ,IAAI,yCAAyC;AAErD,aAAI,cAAS,qBAAT,mBAA2B,yBAAyB;AACtD,kBAAQ,IAAI,gDAAgD;AAC5D,gFAAwC;AAAA,YACtC,SAAS;AAAA,YACT,OAAO;AAAA,cACL,2BAA2B;AAAA,YAC7B;AAAA,UACF,CAAC;AAAA,QACH,OAAO;AACL,cAAI,2BAA0B,kBAAa,wBAAb,mBAAkC,oCAAoC,GAAG;AACrG,oBAAQ,IAAI,6CAA6C;AACzD,kFAAwC;AAAA,cACtC,SAAS;AAAA,YACX,CAAC;AAAA,UACH,OAAO;AACL,sCAA0B;AAAA,UAC5B;AAAA,QACF;AAAA,MACF,SAAS,OAAP;AACA,wBAAgB;AAAA,UAEd,aAAa,WAAW;AAAA,QAC1B,CAAC;AACD,YAAI,WAAW;AACb,kBAAQ,IAAI,sCAAsC,KAAK;AACvD,UAAAF,QAAO,kCAAmC,KAAK;AAAA,QACjD,OAAO;AACL,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,aAAa,qBAAqB,UAAU,2BAA2B,6CAAc,MAAM;AAAA,EAC9F;AAEA,QAAM,kBAAkBC;AAAA,IACtB,OACE,YAIG;AACH,UAAI;AACF,cAAM,WAAWE;AAAA,UACf,KAAK,UAAU;AAAA,YACb,OAAO,QAAQ;AAAA,YACf,eAAe,QAAQ;AAAA,YACvB,YAAY,QAAQ;AAAA,UACtB,CAAC;AAAA,QACH;AACA,cAAM,eAAe;AAAA,UACnB,UAAU,QAAQ;AAAA,UAClB;AAAA,UACA,QAAQ,QAAQ;AAAA,QAClB,CAAC;AAAA,MACH,SAAS,OAAP;AACA,QAAAH,QAAO,kCAAmC,KAAK;AAAA,MACjD;AAAA,IACF;AAAA,IACA,CAACA,OAAM;AAAA,EACT;AAEA,SAAO,EAAE,cAAc,gBAAgB;AACzC;AAEA,IAAO,mBAAQ;",
  "names": ["React", "PromptSettingType", "AuthCoreModalEvent", "connect", "base64url", "useCallback", "AuthCoreEvent", "EvmRpcMethod", "SolanaRpcMethod", "getConnectCaptcha", "getUserInfo", "hasPaymentPassword", "isConnected", "particleAuth", "base58", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "React", "loading_default", "React", "path", "queryString", "Comp", "loading_default", "React", "useEffect", "useEffect", "React", "React", "useEffect", "useState", "React", "useEffect", "useMemo", "useRef", "React", "React", "circle_close_default", "useRef", "useMemo", "useEffect", "_a", "_b", "React", "circle_close_default", "particle_drawer_default", "useState", "useEffect", "_a", "React", "particle_drawer_default", "particle_modal_default", "React", "useEffect", "useRef", "isNullish", "getEVMChainInfoById", "tronAddressFromHex", "getEVMChainInfoById", "tronAddressFromHex", "isHexString", "isValidPhoneNumber", "isHexString", "isNullish", "particleAuth", "getUserInfo", "getUserInfo", "AuthCoreEvent", "hasMasterPassword", "hasPaymentPassword", "particleAuth", "React", "useCallback", "useEffect", "useRef", "qs", "qs", "isConnected", "useCallback", "useEffect", "useState", "useEffect", "useMemo", "useMemo", "useEffect", "useState", "useCallback", "isConnected", "useEffect", "AuthCoreEvent", "isConnected", "isNullish", "particleAuth", "requireNotNullish", "useCallback", "useEffect", "useMemo", "events", "useCallback", "connect", "isNullish", "requireNotNullish", "useEffect", "particleAuth", "AuthCoreEvent", "isConnected", "useMemo", "AuthType", "EvmRpcMethod", "check", "getEVMChainInfoById", "getLatestAuthType", "isConnected", "particleAuth", "requireNotNullish", "useCallback", "useEffect", "useMemo", "useState", "getEVMChainInfoById", "isNullish", "particleAuth", "isHexString", "isHexString", "isHexString", "BigNumber", "BigNumber", "isTron", "isHexString", "isTron", "particleAuth", "getEVMChainInfoById", "isNullish", "isHexString", "EvmRpcMethod", "getEVMChainInfoById", "isChainSupportEIP1559", "isNullish", "particleAuth", "requireNotNullish", "requireNotNullish", "particleAuth", "EvmRpcMethod", "isHexString", "getEVMChainInfoById", "isNullish", "isChainSupportEIP1559", "events", "useState", "particleAuth", "requireNotNullish", "connect", "useMemo", "_a", "getLatestAuthType", "AuthType", "useEffect", "chainId", "check", "isConnected", "useCallback", "EvmRpcMethod", "getEVMChainInfoById", "useEffect", "AuthType", "check", "getLatestAuthType", "getSolanaChainInfoById", "isConnected", "particleAuth", "requireNotNullish", "useCallback", "useEffect", "useMemo", "useState", "events", "useState", "particleAuth", "requireNotNullish", "connect", "useMemo", "_a", "getLatestAuthType", "AuthType", "useEffect", "chainId", "check", "isConnected", "useCallback", "getSolanaChainInfoById", "connect", "useRef", "useEffect", "userInfo", "particleAuth", "AuthCoreEvent", "getUserInfo", "useCallback", "hasMasterPassword", "hasPaymentPassword", "React", "getLatestAuthType", "isSocialAuthType", "useEffect", "useEffect", "isSocialAuthType", "getLatestAuthType", "React", "useState", "useRef", "props", "_a", "styles", "useCallback", "isConnected", "_b", "_c", "_d", "_e", "_f", "_g", "userInfo", "loginAuthorization", "hasPaymentPassword", "SolanaRpcMethod", "base58", "EvmRpcMethod", "getUserInfo", "useMemo", "useEffect", "AuthCoreEvent", "particleAuth", "getConnectCaptcha", "walletEntryPlugin", "particle_modal_default", "events", "useState", "useEffect", "useCallback", "events", "useCallback", "connect", "base64url"]
}
