@luno-kit/core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/account-DElDu01m.d.cts +76 -0
  2. package/dist/account-DElDu01m.d.ts +76 -0
  3. package/dist/chain-CCVvkcX7.d.cts +29 -0
  4. package/dist/chain-CCVvkcX7.d.ts +29 -0
  5. package/dist/chains/index.cjs +2 -0
  6. package/dist/chains/index.cjs.map +1 -0
  7. package/dist/chains/index.d.cts +11 -0
  8. package/dist/chains/index.d.ts +11 -0
  9. package/dist/chains/index.js +2 -0
  10. package/dist/chains/index.js.map +1 -0
  11. package/dist/chunk-4CDT4JBP.cjs +2 -0
  12. package/dist/chunk-4CDT4JBP.cjs.map +1 -0
  13. package/dist/chunk-HBI4E4UR.cjs +3 -0
  14. package/dist/chunk-HBI4E4UR.cjs.map +1 -0
  15. package/dist/chunk-HRWACTK6.cjs +3 -0
  16. package/dist/chunk-HRWACTK6.cjs.map +1 -0
  17. package/dist/chunk-J7PBXJTG.js +3 -0
  18. package/dist/chunk-J7PBXJTG.js.map +1 -0
  19. package/dist/chunk-OP5E5KNE.js +3 -0
  20. package/dist/chunk-OP5E5KNE.js.map +1 -0
  21. package/dist/chunk-SYUDETGE.js +2 -0
  22. package/dist/chunk-SYUDETGE.js.map +1 -0
  23. package/dist/chunk-VGIE4R7S.js +2 -0
  24. package/dist/chunk-VGIE4R7S.js.map +1 -0
  25. package/dist/chunk-WQPMFK4M.cjs +2 -0
  26. package/dist/chunk-WQPMFK4M.cjs.map +1 -0
  27. package/dist/connectors/index.cjs +2 -0
  28. package/dist/connectors/index.cjs.map +1 -0
  29. package/dist/connectors/index.d.cts +7 -0
  30. package/dist/connectors/index.d.ts +7 -0
  31. package/dist/connectors/index.js +2 -0
  32. package/dist/connectors/index.js.map +1 -0
  33. package/dist/index-BKqXPk-s.d.ts +198 -0
  34. package/dist/index-CE8pAy9M.d.cts +198 -0
  35. package/dist/index.cjs +2 -0
  36. package/dist/index.cjs.map +1 -0
  37. package/dist/index.d.cts +69 -0
  38. package/dist/index.d.ts +69 -0
  39. package/dist/index.js +2 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/utils/index.cjs +2 -0
  42. package/dist/utils/index.cjs.map +1 -0
  43. package/dist/utils/index.d.cts +43 -0
  44. package/dist/utils/index.d.ts +43 -0
  45. package/dist/utils/index.js +2 -0
  46. package/dist/utils/index.js.map +1 -0
  47. package/package.json +77 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/connectors/base.ts","../src/connectors/common.ts","../src/connectors/polkadot-js.ts","../src/connectors/polkagate.ts","../src/connectors/subwallet.ts","../src/connectors/talisman.ts","../src/connectors/walletconnect.ts","../src/connectors/novaMobile.ts","../src/connectors/nova.ts"],"names":["BaseConnector","EventEmitter","chainId","CommonConnector","options","injectedWeb3","appName","rawAccounts","mapInjectedAccounts","error","message","address","signer","acc","dataHex","stringToHex","updatedRawAccounts","newAccounts","polkadotjsConnector","polkadotjsSVG","polkagateConnector","polkagateSVG","subwalletConnector","subwalletSVG","talismanConnector","talismanSVG","WalletConnectConnector","walletconnectSVG","chains","chain","targetChainId","UniversalProvider","chainIdToUse","accounts","uri","approval","session","targetChain","caipId","result","_","reject","resolve","payload","walletConnectConnector","NovaMobileConnector","novaSVG","novaMobileConnector","novaConnector","config","isMobileDevice"],"mappings":"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","file":"chunk-HBI4E4UR.cjs","sourcesContent":["import type {Account, Chain, Signer} from '../types';\nimport { EventEmitter } from 'eventemitter3';\nimport { ConnectorLinks } from '../types'\n\n/**\n * base connector abstract class\n * defines the basic properties and methods that all wallet connectors should have.\n */\nexport abstract class BaseConnector extends EventEmitter {\n /**\n * the unique identifier of the connector (e.g., 'polkadot-js', 'subwallet-js')\n * subclasses must implement.\n */\n abstract readonly id: string;\n\n /**\n * user-friendly connector name (e.g., 'Polkadot{.js}', 'SubWallet')\n * subclasses must implement.\n */\n abstract readonly name: string;\n\n /**\n * connector icon URL (optional)\n * subclasses can implement.\n */\n abstract readonly icon?: string;\n\n readonly links: ConnectorLinks = {};\n /**\n * store the current connected accounts.\n * subclasses are responsible for maintaining this list when connecting and updating accounts.\n */\n protected accounts: Account[] = [];\n /**\n * store the signer.\n * subclasses are responsible for getting and storing it when connecting.\n */\n protected signer: Signer | undefined = undefined;\n\n protected connectionUri: string | undefined = undefined;\n\n constructor() {\n super();\n }\n\n public abstract isAvailable(): Promise<boolean>;\n\n public abstract isInstalled(): boolean;\n\n /**\n * connect to the wallet, get the initial accounts and signer, and set the necessary event listeners.\n * subclasses must implement:\n * 1. get the signer and assign it to this.signer.\n * 2. get the initial accounts list and assign it to this.accounts.\n * 3. set the account update mechanism of itself (e.g., use web3AccountsSubscribe or WalletConnect events).\n * 4. update this.accounts when the account list changes and trigger the 'accountsChanged' event.\n * 5. (optional) trigger the 'connect' event.\n * @returns the initial available accounts list\n */\n abstract connect(appName: string, chains?: Chain[], targetChainId?: string): Promise<Array<Account>>;\n /**\n * disconnect from the wallet.\n * subclasses must implement this method to perform specific cleanup logic\n * (e.g., unsubscribe, close session).\n * implementers should clear this.accounts and this.signer after cleanup and trigger the 'disconnect' event.\n */\n abstract disconnect(): Promise<void>;\n\n /**\n * get the current connected accounts list.\n * @returns the current available accounts list\n */\n public async getAccounts(): Promise<Array<Account>> {\n return [...this.accounts];\n }\n\n /**\n * get the cached signer object.\n * @returns the signer object, or undefined if the connection is not successful or cannot be obtained.\n */\n public async getSigner(): Promise<Signer | undefined> {\n if (!this.signer) {\n console.warn(`Connector ${this.id}: Signer not available. Connection might be incomplete or failed.`);\n }\n return this.signer;\n }\n\n /**\n * sign a message with the specified account.\n */\n abstract signMessage(message: string, address: string): Promise<string | undefined>;\n\n public hasConnectionUri(): boolean {\n return false\n }\n\n public async getConnectionUri(): Promise<string | undefined >{\n return this.connectionUri;\n }\n\n public async updateAccountsForChain(chainId: string): Promise<Account[]> {\n return [...this.accounts];\n }\n}\n","import { BaseConnector } from './base';\nimport type { Account, Signer } from '../types';\nimport { mapInjectedAccounts } from '../utils'\nimport { Injected, InjectedAccount } from 'dedot/types'\nimport { stringToHex } from 'dedot/utils'\nimport { ConnectorLinks } from '../types'\n\nexport interface CommonConnectorOptions {\n id: string;\n name: string;\n icon: string;\n links: ConnectorLinks;\n injectorId?: string;\n}\n\nexport class CommonConnector extends BaseConnector {\n readonly id: string;\n readonly name: string;\n readonly icon: string;\n readonly links: ConnectorLinks;\n protected readonly injectorId: string;\n\n private unsubscribe: (() => void) | null = null;\n\n private specificInjector?: Injected = undefined\n\n constructor(options: CommonConnectorOptions) {\n super();\n this.id = options.id;\n this.name = options.name;\n this.icon = options.icon;\n this.links = options.links;\n this.injectorId = options.injectorId || options.id;\n }\n\n public isInstalled(): boolean {\n if (typeof window === 'undefined') return false;\n const injectedWeb3 = window.injectedWeb3;\n return typeof injectedWeb3 === 'object' && typeof injectedWeb3[this.injectorId] !== 'undefined';\n }\n\n public async isAvailable(): Promise<boolean> {\n return this.isInstalled();\n }\n\n public async connect(appName: string): Promise<Array<Account>> {\n console.log(`Connector ${this.id}: Attempting to connect...`);\n if (this.signer) {\n console.log(`Connector ${this.id}: Already connected.`);\n return [...this.accounts];\n }\n if (!(await this.isAvailable())) {\n throw new Error(`${this.name} extension not found or not enabled.`);\n }\n\n try {\n this.specificInjector = await window.injectedWeb3![this.injectorId]!.enable(appName);\n\n if (!this.specificInjector) {\n throw new Error(`Failed to enable the '${this.id}' extension.`);\n }\n\n this.signer = this.specificInjector.signer as Signer;\n\n if (!this.signer) {\n throw new Error(`Could not get signer from ${this.name}.`);\n }\n\n const rawAccounts = await this.specificInjector.accounts.get();\n if (rawAccounts.length === 0) {\n throw new Error(`No accounts found in ${this.name}. Make sure accounts are visible and access is granted.`);\n }\n this.accounts = mapInjectedAccounts(rawAccounts, this.id);\n console.log(`Connector ${this.id}: Initial accounts loaded`, this.accounts);\n\n await this.startSubscription();\n\n this.emit('connect', [...this.accounts]);\n\n return [...this.accounts];\n\n } catch (error) {\n console.error(`Connector ${this.id}: Connection failed:`, error);\n await this.cleanup();\n throw error;\n }\n }\n\n public async disconnect(): Promise<void> {\n console.log(`Connector ${this.id}: Disconnecting...`);\n await this.cleanup();\n this.emit('disconnect');\n }\n\n public async signMessage(message: string, address: string): Promise<string | undefined> {\n if (!address || !message) return undefined;\n const signer = await this.getSigner();\n if (!signer || !signer?.signRaw) {\n throw new Error('Signer is not available or does not support signRaw.');\n }\n const accounts = await this.getAccounts();\n if (!accounts.some(acc => acc.address.toLowerCase() === address.toLowerCase())) {\n throw new Error(`Address ${address} is not managed by ${this.name}.`);\n }\n\n try {\n const dataHex = stringToHex(message);\n const result = await signer.signRaw({ address, data: dataHex, type: 'bytes' });\n return result.signature;\n } catch (error: any) {\n throw new Error(`Connector ${this.id}: Failed to sign message: ${error.message}`);\n }\n }\n\n\n private async startSubscription(): Promise<void> {\n await this.cleanupSubscription();\n if (!this.specificInjector) {\n throw new Error(`Connector ${this.id}: Cannot subscribe, specificInjector not available.`);\n }\n\n try {\n this.unsubscribe = this.specificInjector.accounts.subscribe(\n (updatedRawAccounts: InjectedAccount[]) => {\n const newAccounts = mapInjectedAccounts(updatedRawAccounts, this.id);\n if (JSON.stringify(this.accounts) !== JSON.stringify(newAccounts)) {\n this.accounts = newAccounts;\n this.emit('accountsChanged', [...this.accounts]);\n }\n }\n );\n console.log(`Connector ${this.id}: Subscribed to account changes.`);\n } catch (error) {\n console.error(`Connector ${this.id}: Failed to subscribe to accounts:`, error);\n this.unsubscribe = null;\n }\n }\n\n private async cleanupSubscription(): Promise<void> {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n console.log(`Connector ${this.id}: Unsubscribed from account changes.`);\n }\n }\n\n\n private async cleanup(): Promise<void> {\n await this.cleanupSubscription();\n this.accounts = [];\n this.signer = undefined;\n this.specificInjector = undefined\n }\n}\n","import { CommonConnector } from './common'\nimport { polkadotjsSVG } from '../config/logos/generated'\n\nexport const polkadotjsConnector = () => {\n return new CommonConnector({\n id: 'polkadot-js',\n name: 'Polkadot{.js}',\n icon: polkadotjsSVG,\n links: {\n browserExtension: 'https://polkadot.js.org/extension'\n }\n });\n}\n","import { polkagateSVG } from '../config/logos/generated'\nimport { CommonConnector } from './common'\n\nexport const polkagateConnector = () => {\n return new CommonConnector({\n id: 'polkagate',\n name: 'Polkagate',\n icon: polkagateSVG,\n links: {\n browserExtension: 'https://chromewebstore.google.com/detail/polkagate-the-gateway-to/ginchbkmljhldofnbjabmeophlhdldgp'\n }\n });\n}\n","import { subwalletSVG } from '../config/logos/generated'\nimport { CommonConnector } from './common'\n\nexport const subwalletConnector = () => {\n return new CommonConnector({\n id: 'subwallet-js',\n name: 'SubWallet',\n icon: subwalletSVG,\n links: {\n browserExtension: 'https://chromewebstore.google.com/detail/subwallet-polkadot-wallet/onhogfjeacnfoofkfgppdlbmlmnplgbn',\n deepLink: 'https://mobile.subwallet.app/browser',\n }\n })\n};\n","import { talismanSVG } from '../config/logos/generated'\nimport { CommonConnector } from './common'\n\nexport const talismanConnector = () => {\n return new CommonConnector({\n id: 'talisman',\n name: 'Talisman',\n icon: talismanSVG,\n links: {\n browserExtension: 'https://chromewebstore.google.com/detail/talisman-wallet/fijngjgcjhjmmpcmkeiomlglpeiijkld'\n }\n });\n}\n","import { BaseConnector } from './base';\nimport type { IUniversalProvider, Metadata } from '@walletconnect/universal-provider';\nimport { SessionTypes } from '@walletconnect/types'\nimport type { Account, Chain, Signer, WalletConnectConnectorOptions } from '../types';\nimport { walletconnectSVG } from '../config/logos/generated';\nimport { SignerResult, SignerPayloadJSON } from 'dedot/types'\nimport {ConnectorLinks} from '../types'\n\nexport class WalletConnectConnector extends BaseConnector {\n readonly id: string;\n readonly name: string;\n readonly icon: string;\n readonly links: ConnectorLinks;\n\n private provider?: IUniversalProvider;\n private projectId: string;\n private relayUrl: string;\n private metadata?: Metadata;\n\n private session?: SessionTypes.Struct;\n private connectedChains?: Chain[];\n\n constructor(options: WalletConnectConnectorOptions) {\n super();\n this.id = options.id || 'walletconnect';\n this.name = options.name || 'WalletConnect';\n this.links = options.links || {};\n\n this.icon = options.icon || walletconnectSVG;\n\n this.projectId = options.projectId;\n this.relayUrl = options.relayUrl || 'wss://relay.walletconnect.com';\n this.metadata = options.metadata;\n }\n\n public isInstalled(): boolean {\n return true;\n }\n\n public async isAvailable(): Promise<boolean> {\n return true;\n }\n\n private convertChainIdToCaipId(chains: Chain[]): string[] {\n return chains.map(chain => `polkadot:${chain.genesisHash.replace('0x', '').slice(0, 32)}`);\n }\n\n public async connect(appName: string, chains?: Chain[], targetChainId?: string): Promise<Array<Account>> {\n if (!this.projectId) {\n throw new Error(`${this.name} requires a projectId. Please visit https://cloud.walletconnect.com to get one.`);\n }\n\n if (!chains || chains.length === 0) {\n throw new Error(`${this.name} requires chains configuration.`);\n }\n\n this.connectedChains = chains;\n\n const { UniversalProvider } = await import(\"@walletconnect/universal-provider\");\n\n try {\n this.provider = await UniversalProvider.init({\n projectId: this.projectId,\n relayUrl: this.relayUrl,\n metadata: this.metadata || {\n name: appName,\n description: 'LunoKit DApp',\n url: typeof window !== 'undefined' ? window.location.origin : '',\n icons: [this.icon],\n },\n });\n\n const chainIdToUse = targetChainId || chains[0].genesisHash;\n\n if (this.provider.session) {\n this.session = this.provider.session;\n const accounts = this.getAccountsFromSession(chains, chainIdToUse);\n this.accounts = accounts;\n this.emit('connect', [...this.accounts]);\n return [...this.accounts];\n }\n\n if (!this.provider?.client) {\n throw new Error(\"Provider not initialized or not connected\");\n }\n\n const { uri, approval } = await this.provider.client.connect({\n requiredNamespaces: {\n polkadot: {\n methods: ['polkadot_signMessage', 'polkadot_sendTransaction', 'polkadot_signTransaction', 'polkadot_requestAccounts'],\n chains: this.convertChainIdToCaipId(chains),\n events: ['accountsChanged', 'chainChanged', 'connect'],\n },\n },\n optionalNamespaces: {\n polkadot: {\n methods: ['polkadot_signMessage', 'polkadot_sendTransaction', 'polkadot_signTransaction', 'polkadot_requestAccounts'],\n chains: this.convertChainIdToCaipId(chains),\n events: ['accountsChanged', 'chainChanged', 'connect'],\n },\n },\n });\n\n this.emit('get_uri', uri);\n\n const session = await approval();\n this.session = session;\n this.provider.session = session;\n\n this.connectionUri = undefined;\n\n const accounts = this.getAccountsFromSession(chains, chainIdToUse);\n this.accounts = accounts;\n this.emit('connect', [...this.accounts]);\n return [...this.accounts];\n\n } catch (error) {\n this.connectionUri = undefined;\n throw error;\n }\n }\n\n private getAccountsFromSession(chains: Chain[], chainId: string): Account[] {\n const targetChain = chains.filter(chain => chain.genesisHash.toLowerCase() === chainId.toLowerCase())\n const caipId = this.convertChainIdToCaipId(targetChain)[0];\n\n let rawAccounts = this.session?.namespaces.polkadot.accounts\n .flat()\n .filter((address: string) => address.includes(caipId))\n .map((address: string) => address.replace(`${caipId}:`, \"\"))\n\n if (rawAccounts && rawAccounts.length === 0) {\n console.error(`No accounts found for the specified chain, please connect to the correct chain`);\n\n const caipId = this.convertChainIdToCaipId(chains)[0];\n\n rawAccounts = this.session?.namespaces.polkadot.accounts\n .flat()\n .filter((address: string) => address.includes(caipId))\n .map((address: string) => address.replace(`${caipId}:`, \"\"))\n }\n\n const result = rawAccounts!\n .map((address: string) => ({\n address,\n name: `${this.name} Account`,\n meta: {\n source: this.id,\n },\n publicKey: undefined,\n }));\n\n this.emit('accountsChanged', [...result]);\n\n return result!\n }\n\n public async disconnect(): Promise<void> {\n if (this.provider) {\n await Promise.race([\n await this.provider.disconnect(),\n new Promise((_, reject) =>\n setTimeout(() => reject(new Error('Disconnect timeout')), 5000)\n )\n ]);\n this.provider = undefined;\n this.connectionUri = undefined;\n this.accounts = [];\n this.signer = undefined;\n this.emit('disconnect');\n }\n }\n\n public async signMessage(message: string, address: string, chainId?: string): Promise<string | undefined> {\n if (!this.provider?.client || !this.session?.topic) {\n throw new Error(\"Provider not initialized or not connected\");\n }\n\n try {\n const result = await this.provider.client.request({\n topic: this.session.topic,\n chainId: this.convertChainIdToCaipId(this.connectedChains!)[0],\n request: {\n method: 'polkadot_signMessage',\n params: {\n address,\n message,\n type: 'bytes'\n },\n },\n });\n\n return (result as any)?.signature;\n } catch (error) {\n console.error('Sign message error:', error);\n throw error;\n }\n }\n\n public hasConnectionUri(): boolean {\n return true\n }\n\n public async getConnectionUri(): Promise<string> {\n if (this.connectionUri) {\n return this.connectionUri;\n }\n\n return new Promise<string>((resolve) => {\n this.once('get_uri', (uri: string) => {\n this.connectionUri = uri;\n resolve(uri);\n });\n });\n }\n\n public async updateAccountsForChain(chainId: string) {\n if (!this.connectedChains) {\n throw new Error('WalletConnect not connected');\n }\n\n const newAccounts = this.getAccountsFromSession(this.connectedChains, chainId);\n this.accounts = newAccounts;\n\n return newAccounts;\n }\n\n\n public async getSigner(): Promise<Signer | undefined> {\n if (!this.provider?.client || !this.session) return undefined;\n\n return {\n signPayload: async (payload: SignerPayloadJSON): Promise<SignerResult> => {\n try {\n const result = await this.provider?.client?.request<{ signature: string }>({\n topic: this.session!.topic,\n chainId: `polkadot:${payload.genesisHash.replace('0x', '').slice(0, 32)}`,\n request: {\n method: 'polkadot_signTransaction',\n params: {\n address: payload.address,\n transactionPayload: payload,\n },\n },\n });\n return result as SignerResult;\n } catch (error) {\n throw new Error(`Transaction signing failed: ${JSON.stringify(error)}`);\n }\n }\n };\n }\n}\n\nexport const walletConnectConnector = (options: WalletConnectConnectorOptions) =>\n new WalletConnectConnector(options);\n","import { novaSVG } from '../config/logos/generated'\nimport { CommonConnector } from './common'\n\nexport class NovaMobileConnector extends CommonConnector {\n constructor() {\n super({\n id: 'nova-mobile',\n name: 'Nova Wallet (Mobile)',\n icon: novaSVG,\n injectorId: 'polkadot-js',\n links: {\n deepLink: 'https://app.novawallet.io/open/dapp'\n }\n });\n }\n\n public isInstalled(): boolean {\n if (typeof window === 'undefined') return false;\n const injectedWeb3 = window.injectedWeb3;\n return (\n typeof injectedWeb3 === 'object' &&\n typeof injectedWeb3['polkadot-js'] !== 'undefined' &&\n window.walletExtension?.isNovaWallet === true\n );\n }\n\n public async isAvailable(): Promise<boolean> {\n return this.isInstalled();\n }\n}\n\nexport const novaMobileConnector = () => new NovaMobileConnector()\n","import { novaSVG } from '../config/logos/generated'\nimport { WalletConnectConnector } from './walletconnect'\nimport type { Metadata } from '@walletconnect/universal-provider'\nimport { novaMobileConnector } from './novaMobile'\nimport { isMobileDevice } from '../utils'\n\ntype WalletConnectConfig = {\n projectId: string;\n relayUrl?: string;\n metadata?: Metadata;\n}\n\ntype MobileOnlyConfig = {\n mobileOnly: true;\n}\n\ntype NovaConnectorConfig = WalletConnectConfig | MobileOnlyConfig;\n\nexport const novaConnector = (config: NovaConnectorConfig) => {\n if ((config as MobileOnlyConfig).mobileOnly && !isMobileDevice()) {\n throw new Error('Nova Wallet mobile connector cannot be used on desktop devices');\n }\n\n if ((config as MobileOnlyConfig).mobileOnly) {\n throw new Error('Nova Wallet is not installed. Please install Nova Wallet to continue.');\n }\n\n if (isMobileDevice()) {\n return novaMobileConnector();\n }\n\n return new WalletConnectConnector({\n id: 'nova',\n name: 'Nova Wallet',\n icon: novaSVG,\n links: {\n browserExtension: 'https://novawallet.io',\n },\n ...config as WalletConnectConfig,\n });\n};\n"]}
@@ -0,0 +1,3 @@
1
+ 'use strict';var chunk4CDT4JBP_cjs=require('./chunk-4CDT4JBP.cjs');var r={genesisHash:"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",name:"Polkadot",nativeCurrency:{name:"Polkadot",symbol:"DOT",decimals:10},rpcUrls:{webSocket:["wss://rpc.polkadot.io","wss://polkadot.api.onfinality.io/public-ws"],http:["https://rpc.polkadot.io"]},ss58Format:0,blockExplorers:{default:{name:"Subscan",url:"https://polkadot.subscan.io"}},chainIconUrl:chunk4CDT4JBP_cjs.d};var p={genesisHash:"0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe",name:"Kusama",nativeCurrency:{name:"Kusama",symbol:"KSM",decimals:12},rpcUrls:{webSocket:["wss://kusama-rpc.polkadot.io","wss://kusama.api.onfinality.io/public-ws"]},ss58Format:2,blockExplorers:{default:{name:"Subscan",url:"https://kusama.subscan.io"}},chainIconUrl:chunk4CDT4JBP_cjs.a};var l={genesisHash:"0x77afd6190f1554ad45fd0d31aee62aacc33c6db0ea801129acb813f913e0764f",name:"Paseo",nativeCurrency:{name:"Paseo",symbol:"PAS",decimals:10},rpcUrls:{webSocket:["wss://rpc.ibp.network/paseo","wss://paseo.rpc.amforc.com"]},ss58Format:0,blockExplorers:{default:{name:"Subscan",url:"https://paseo.subscan.io/"}},chainIconUrl:chunk4CDT4JBP_cjs.c,testnet:true};var b={genesisHash:"0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e",name:"Westend",nativeCurrency:{name:"Westend",symbol:"WND",decimals:12},rpcUrls:{webSocket:["wss://westend-rpc.polkadot.io"]},ss58Format:42,blockExplorers:{default:{name:"Subscan",url:"https://westend.subscan.io"}},chainIconUrl:chunk4CDT4JBP_cjs.j,testnet:true};
2
+ exports.a=r;exports.b=p;exports.c=l;exports.d=b;//# sourceMappingURL=chunk-HRWACTK6.cjs.map
3
+ //# sourceMappingURL=chunk-HRWACTK6.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/chains/polkadot.ts","../src/chains/kusama.ts","../src/chains/paseo.ts","../src/chains/westend.ts"],"names":["polkadot","polkadotSVG","kusama","kusamaSVG","paseo","paseoSVG","westend","westendSVG"],"mappings":"mEAGO,IAAMA,EAAkB,CAC7B,WAAA,CAAa,oEAAA,CACb,IAAA,CAAM,WACN,cAAA,CAAgB,CAAE,IAAA,CAAM,UAAA,CAAY,OAAQ,KAAA,CAAO,QAAA,CAAU,EAAG,CAAA,CAChE,QAAS,CACP,SAAA,CAAW,CAAC,uBAAA,CAAyB,4CAA4C,CAAA,CACjF,IAAA,CAAM,CAAC,yBAAyB,CAClC,CAAA,CACA,UAAA,CAAY,CAAA,CACZ,cAAA,CAAgB,CAAE,OAAA,CAAS,CAAE,KAAM,SAAA,CAAW,GAAA,CAAK,6BAA8B,CAAE,CAAA,CACnF,YAAA,CAAcC,mBAChB,ECXO,IAAMC,CAAAA,CAAgB,CAC3B,WAAA,CAAa,qEACb,IAAA,CAAM,QAAA,CACN,cAAA,CAAgB,CAAE,KAAM,QAAA,CAAU,MAAA,CAAQ,KAAA,CAAO,QAAA,CAAU,EAAG,CAAA,CAC9D,OAAA,CAAS,CAAE,SAAA,CAAW,CAAC,8BAAA,CAAgC,0CAA0C,CAAE,CAAA,CACnG,WAAY,CAAA,CACZ,cAAA,CAAgB,CAAE,OAAA,CAAS,CAAE,IAAA,CAAM,SAAA,CAAW,IAAK,2BAA4B,CAAE,EACjF,YAAA,CAAcC,mBAChB,ECRO,IAAMC,EAAe,CAC1B,WAAA,CAAa,oEAAA,CACb,IAAA,CAAM,QACN,cAAA,CAAgB,CAAE,IAAA,CAAM,OAAA,CAAS,OAAQ,KAAA,CAAO,QAAA,CAAU,EAAG,CAAA,CAC7D,QAAS,CAAE,SAAA,CAAW,CAAC,6BAAA,CAA+B,4BAA4B,CAAE,CAAA,CACpF,UAAA,CAAY,CAAA,CACZ,eAAgB,CAAE,OAAA,CAAS,CAAE,IAAA,CAAM,UAAW,GAAA,CAAK,2BAA4B,CAAE,CAAA,CACjF,YAAA,CAAcC,oBACd,OAAA,CAAS,IACX,ECTO,IAAMC,EAAiB,CAC5B,WAAA,CAAa,oEAAA,CACb,IAAA,CAAM,UACN,cAAA,CAAgB,CAAE,IAAA,CAAM,SAAA,CAAW,OAAQ,KAAA,CAAO,QAAA,CAAU,EAAG,CAAA,CAC/D,QAAS,CAAE,SAAA,CAAW,CAAC,+BAA+B,CAAE,CAAA,CACxD,UAAA,CAAY,EAAA,CACZ,cAAA,CAAgB,CAAE,OAAA,CAAS,CAAE,IAAA,CAAM,SAAA,CAAW,IAAK,4BAA6B,CAAE,EAClF,YAAA,CAAcC,mBAAAA,CACd,QAAS,IACX","file":"chunk-HRWACTK6.cjs","sourcesContent":["import type { Chain } from '../types'\nimport { polkadotSVG } from '../config/logos/generated'\n\nexport const polkadot: Chain = {\n genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n name: 'Polkadot',\n nativeCurrency: { name: 'Polkadot', symbol: 'DOT', decimals: 10 },\n rpcUrls: {\n webSocket: ['wss://rpc.polkadot.io', 'wss://polkadot.api.onfinality.io/public-ws'],\n http: ['https://rpc.polkadot.io'],\n },\n ss58Format: 0,\n blockExplorers: { default: { name: 'Subscan', url: 'https://polkadot.subscan.io' } },\n chainIconUrl: polkadotSVG\n};\n","import type { Chain } from '../types'\nimport { kusamaSVG } from '../config/logos/generated'\n\nexport const kusama: Chain = {\n genesisHash: '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n name: 'Kusama',\n nativeCurrency: { name: 'Kusama', symbol: 'KSM', decimals: 12 },\n rpcUrls: { webSocket: ['wss://kusama-rpc.polkadot.io', 'wss://kusama.api.onfinality.io/public-ws'] },\n ss58Format: 2,\n blockExplorers: { default: { name: 'Subscan', url: 'https://kusama.subscan.io' } },\n chainIconUrl: kusamaSVG\n};\n","import type { Chain } from '../types'\nimport { paseoSVG } from '../config/logos/generated'\n\nexport const paseo: Chain = {\n genesisHash: '0x77afd6190f1554ad45fd0d31aee62aacc33c6db0ea801129acb813f913e0764f',\n name: 'Paseo',\n nativeCurrency: { name: 'Paseo', symbol: 'PAS', decimals: 10 },\n rpcUrls: { webSocket: ['wss://rpc.ibp.network/paseo', 'wss://paseo.rpc.amforc.com'] },\n ss58Format: 0,\n blockExplorers: { default: { name: 'Subscan', url: 'https://paseo.subscan.io/' } },\n chainIconUrl: paseoSVG,\n testnet: true\n};\n","import type { Chain } from '../types'\nimport { westendSVG } from '../config/logos/generated'\n\nexport const westend: Chain = {\n genesisHash: '0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e',\n name: 'Westend',\n nativeCurrency: { name: 'Westend', symbol: 'WND', decimals: 12 },\n rpcUrls: { webSocket: ['wss://westend-rpc.polkadot.io'] },\n ss58Format: 42,\n blockExplorers: { default: { name: 'Subscan', url: 'https://westend.subscan.io' } },\n chainIconUrl: westendSVG,\n testnet: true,\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import {e,f as f$1,g as g$1,h as h$1,i,b}from'./chunk-VGIE4R7S.js';import {h,l as l$1}from'./chunk-SYUDETGE.js';import {EventEmitter}from'eventemitter3';import {stringToHex}from'dedot/utils';var l=class extends EventEmitter{constructor(){super();this.links={};this.accounts=[];this.signer=void 0;this.connectionUri=void 0;}async getAccounts(){return [...this.accounts]}async getSigner(){return this.signer||console.warn(`Connector ${this.id}: Signer not available. Connection might be incomplete or failed.`),this.signer}hasConnectionUri(){return false}async getConnectionUri(){return this.connectionUri}async updateAccountsForChain(n){return [...this.accounts]}};var r=class extends l{constructor(n){super();this.unsubscribe=null;this.specificInjector=void 0;this.id=n.id,this.name=n.name,this.icon=n.icon,this.links=n.links,this.injectorId=n.injectorId||n.id;}isInstalled(){if(typeof window>"u")return false;let n=window.injectedWeb3;return typeof n=="object"&&typeof n[this.injectorId]<"u"}async isAvailable(){return this.isInstalled()}async connect(n){if(console.log(`Connector ${this.id}: Attempting to connect...`),this.signer)return console.log(`Connector ${this.id}: Already connected.`),[...this.accounts];if(!await this.isAvailable())throw new Error(`${this.name} extension not found or not enabled.`);try{if(this.specificInjector=await window.injectedWeb3[this.injectorId].enable(n),!this.specificInjector)throw new Error(`Failed to enable the '${this.id}' extension.`);if(this.signer=this.specificInjector.signer,!this.signer)throw new Error(`Could not get signer from ${this.name}.`);let e=await this.specificInjector.accounts.get();if(e.length===0)throw new Error(`No accounts found in ${this.name}. Make sure accounts are visible and access is granted.`);return this.accounts=h(e,this.id),console.log(`Connector ${this.id}: Initial accounts loaded`,this.accounts),await this.startSubscription(),this.emit("connect",[...this.accounts]),[...this.accounts]}catch(e){throw console.error(`Connector ${this.id}: Connection failed:`,e),await this.cleanup(),e}}async disconnect(){console.log(`Connector ${this.id}: Disconnecting...`),await this.cleanup(),this.emit("disconnect");}async signMessage(n,e){if(!e||!n)return;let i=await this.getSigner();if(!i||!i?.signRaw)throw new Error("Signer is not available or does not support signRaw.");if(!(await this.getAccounts()).some(c=>c.address.toLowerCase()===e.toLowerCase()))throw new Error(`Address ${e} is not managed by ${this.name}.`);try{let c=stringToHex(n);return (await i.signRaw({address:e,data:c,type:"bytes"})).signature}catch(c){throw new Error(`Connector ${this.id}: Failed to sign message: ${c.message}`)}}async startSubscription(){if(await this.cleanupSubscription(),!this.specificInjector)throw new Error(`Connector ${this.id}: Cannot subscribe, specificInjector not available.`);try{this.unsubscribe=this.specificInjector.accounts.subscribe(n=>{let e=h(n,this.id);JSON.stringify(this.accounts)!==JSON.stringify(e)&&(this.accounts=e,this.emit("accountsChanged",[...this.accounts]));}),console.log(`Connector ${this.id}: Subscribed to account changes.`);}catch(n){console.error(`Connector ${this.id}: Failed to subscribe to accounts:`,n),this.unsubscribe=null;}}async cleanupSubscription(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null,console.log(`Connector ${this.id}: Unsubscribed from account changes.`));}async cleanup(){await this.cleanupSubscription(),this.accounts=[],this.signer=void 0,this.specificInjector=void 0;}};var A=()=>new r({id:"polkadot-js",name:"Polkadot{.js}",icon:e,links:{browserExtension:"https://polkadot.js.org/extension"}});var P=()=>new r({id:"polkagate",name:"Polkagate",icon:f$1,links:{browserExtension:"https://chromewebstore.google.com/detail/polkagate-the-gateway-to/ginchbkmljhldofnbjabmeophlhdldgp"}});var x=()=>new r({id:"subwallet-js",name:"SubWallet",icon:g$1,links:{browserExtension:"https://chromewebstore.google.com/detail/subwallet-polkadot-wallet/onhogfjeacnfoofkfgppdlbmlmnplgbn",deepLink:"https://mobile.subwallet.app/browser"}});var $=()=>new r({id:"talisman",name:"Talisman",icon:h$1,links:{browserExtension:"https://chromewebstore.google.com/detail/talisman-wallet/fijngjgcjhjmmpcmkeiomlglpeiijkld"}});var p=class extends l{constructor(t){super(),this.id=t.id||"walletconnect",this.name=t.name||"WalletConnect",this.links=t.links||{},this.icon=t.icon||i,this.projectId=t.projectId,this.relayUrl=t.relayUrl||"wss://relay.walletconnect.com",this.metadata=t.metadata;}isInstalled(){return true}async isAvailable(){return true}convertChainIdToCaipId(t){return t.map(n=>`polkadot:${n.genesisHash.replace("0x","").slice(0,32)}`)}async connect(t,n,e){if(!this.projectId)throw new Error(`${this.name} requires a projectId. Please visit https://cloud.walletconnect.com to get one.`);if(!n||n.length===0)throw new Error(`${this.name} requires chains configuration.`);this.connectedChains=n;let{UniversalProvider:i}=await import('@walletconnect/universal-provider');try{this.provider=await i.init({projectId:this.projectId,relayUrl:this.relayUrl,metadata:this.metadata||{name:t,description:"LunoKit DApp",url:typeof window<"u"?window.location.origin:"",icons:[this.icon]}});let s=e||n[0].genesisHash;if(this.provider.session){this.session=this.provider.session;let I=this.getAccountsFromSession(n,s);return this.accounts=I,this.emit("connect",[...this.accounts]),[...this.accounts]}if(!this.provider?.client)throw new Error("Provider not initialized or not connected");let{uri:c,approval:o}=await this.provider.client.connect({requiredNamespaces:{polkadot:{methods:["polkadot_signMessage","polkadot_sendTransaction","polkadot_signTransaction","polkadot_requestAccounts"],chains:this.convertChainIdToCaipId(n),events:["accountsChanged","chainChanged","connect"]}},optionalNamespaces:{polkadot:{methods:["polkadot_signMessage","polkadot_sendTransaction","polkadot_signTransaction","polkadot_requestAccounts"],chains:this.convertChainIdToCaipId(n),events:["accountsChanged","chainChanged","connect"]}}});this.emit("get_uri",c);let d=await o();this.session=d,this.provider.session=d,this.connectionUri=void 0;let k=this.getAccountsFromSession(n,s);return this.accounts=k,this.emit("connect",[...this.accounts]),[...this.accounts]}catch(s){throw this.connectionUri=void 0,s}}getAccountsFromSession(t,n){let e=t.filter(o=>o.genesisHash.toLowerCase()===n.toLowerCase()),i=this.convertChainIdToCaipId(e)[0],s=this.session?.namespaces.polkadot.accounts.flat().filter(o=>o.includes(i)).map(o=>o.replace(`${i}:`,""));if(s&&s.length===0){console.error("No accounts found for the specified chain, please connect to the correct chain");let o=this.convertChainIdToCaipId(t)[0];s=this.session?.namespaces.polkadot.accounts.flat().filter(d=>d.includes(o)).map(d=>d.replace(`${o}:`,""));}let c=s.map(o=>({address:o,name:`${this.name} Account`,meta:{source:this.id},publicKey:void 0}));return this.emit("accountsChanged",[...c]),c}async disconnect(){this.provider&&(await Promise.race([await this.provider.disconnect(),new Promise((t,n)=>setTimeout(()=>n(new Error("Disconnect timeout")),5e3))]),this.provider=void 0,this.connectionUri=void 0,this.accounts=[],this.signer=void 0,this.emit("disconnect"));}async signMessage(t,n,e){if(!this.provider?.client||!this.session?.topic)throw new Error("Provider not initialized or not connected");try{return (await this.provider.client.request({topic:this.session.topic,chainId:this.convertChainIdToCaipId(this.connectedChains)[0],request:{method:"polkadot_signMessage",params:{address:n,message:t,type:"bytes"}}}))?.signature}catch(i){throw console.error("Sign message error:",i),i}}hasConnectionUri(){return true}async getConnectionUri(){return this.connectionUri?this.connectionUri:new Promise(t=>{this.once("get_uri",n=>{this.connectionUri=n,t(n);});})}async updateAccountsForChain(t){if(!this.connectedChains)throw new Error("WalletConnect not connected");let n=this.getAccountsFromSession(this.connectedChains,t);return this.accounts=n,n}async getSigner(){if(!(!this.provider?.client||!this.session))return {signPayload:async t=>{try{return await this.provider?.client?.request({topic:this.session.topic,chainId:`polkadot:${t.genesisHash.replace("0x","").slice(0,32)}`,request:{method:"polkadot_signTransaction",params:{address:t.address,transactionPayload:t}}})}catch(n){throw new Error(`Transaction signing failed: ${JSON.stringify(n)}`)}}}}},E=a=>new p(a);var g=class extends r{constructor(){super({id:"nova-mobile",name:"Nova Wallet (Mobile)",icon:b,injectorId:"polkadot-js",links:{deepLink:"https://app.novawallet.io/open/dapp"}});}isInstalled(){if(typeof window>"u")return false;let t=window.injectedWeb3;return typeof t=="object"&&typeof t["polkadot-js"]<"u"&&window.walletExtension?.isNovaWallet===true}async isAvailable(){return this.isInstalled()}},f=()=>new g;var U=a=>{if(a.mobileOnly&&!l$1())throw new Error("Nova Wallet mobile connector cannot be used on desktop devices");if(a.mobileOnly)throw new Error("Nova Wallet is not installed. Please install Nova Wallet to continue.");return l$1()?f():new p({id:"nova",name:"Nova Wallet",icon:b,links:{browserExtension:"https://novawallet.io"},...a})};
2
+ export{l as a,A as b,P as c,x as d,$ as e,E as f,f as g,U as h};//# sourceMappingURL=chunk-J7PBXJTG.js.map
3
+ //# sourceMappingURL=chunk-J7PBXJTG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/connectors/base.ts","../src/connectors/common.ts","../src/connectors/polkadot-js.ts","../src/connectors/polkagate.ts","../src/connectors/subwallet.ts","../src/connectors/talisman.ts","../src/connectors/walletconnect.ts","../src/connectors/novaMobile.ts","../src/connectors/nova.ts"],"names":["BaseConnector","EventEmitter","chainId","CommonConnector","options","injectedWeb3","appName","rawAccounts","mapInjectedAccounts","error","message","address","signer","acc","dataHex","stringToHex","updatedRawAccounts","newAccounts","polkadotjsConnector","polkadotjsSVG","polkagateConnector","polkagateSVG","subwalletConnector","subwalletSVG","talismanConnector","talismanSVG","WalletConnectConnector","walletconnectSVG","chains","chain","targetChainId","UniversalProvider","chainIdToUse","accounts","uri","approval","session","targetChain","caipId","result","_","reject","resolve","payload","walletConnectConnector","NovaMobileConnector","novaSVG","novaMobileConnector","novaConnector","config","isMobileDevice"],"mappings":"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","file":"chunk-J7PBXJTG.js","sourcesContent":["import type {Account, Chain, Signer} from '../types';\nimport { EventEmitter } from 'eventemitter3';\nimport { ConnectorLinks } from '../types'\n\n/**\n * base connector abstract class\n * defines the basic properties and methods that all wallet connectors should have.\n */\nexport abstract class BaseConnector extends EventEmitter {\n /**\n * the unique identifier of the connector (e.g., 'polkadot-js', 'subwallet-js')\n * subclasses must implement.\n */\n abstract readonly id: string;\n\n /**\n * user-friendly connector name (e.g., 'Polkadot{.js}', 'SubWallet')\n * subclasses must implement.\n */\n abstract readonly name: string;\n\n /**\n * connector icon URL (optional)\n * subclasses can implement.\n */\n abstract readonly icon?: string;\n\n readonly links: ConnectorLinks = {};\n /**\n * store the current connected accounts.\n * subclasses are responsible for maintaining this list when connecting and updating accounts.\n */\n protected accounts: Account[] = [];\n /**\n * store the signer.\n * subclasses are responsible for getting and storing it when connecting.\n */\n protected signer: Signer | undefined = undefined;\n\n protected connectionUri: string | undefined = undefined;\n\n constructor() {\n super();\n }\n\n public abstract isAvailable(): Promise<boolean>;\n\n public abstract isInstalled(): boolean;\n\n /**\n * connect to the wallet, get the initial accounts and signer, and set the necessary event listeners.\n * subclasses must implement:\n * 1. get the signer and assign it to this.signer.\n * 2. get the initial accounts list and assign it to this.accounts.\n * 3. set the account update mechanism of itself (e.g., use web3AccountsSubscribe or WalletConnect events).\n * 4. update this.accounts when the account list changes and trigger the 'accountsChanged' event.\n * 5. (optional) trigger the 'connect' event.\n * @returns the initial available accounts list\n */\n abstract connect(appName: string, chains?: Chain[], targetChainId?: string): Promise<Array<Account>>;\n /**\n * disconnect from the wallet.\n * subclasses must implement this method to perform specific cleanup logic\n * (e.g., unsubscribe, close session).\n * implementers should clear this.accounts and this.signer after cleanup and trigger the 'disconnect' event.\n */\n abstract disconnect(): Promise<void>;\n\n /**\n * get the current connected accounts list.\n * @returns the current available accounts list\n */\n public async getAccounts(): Promise<Array<Account>> {\n return [...this.accounts];\n }\n\n /**\n * get the cached signer object.\n * @returns the signer object, or undefined if the connection is not successful or cannot be obtained.\n */\n public async getSigner(): Promise<Signer | undefined> {\n if (!this.signer) {\n console.warn(`Connector ${this.id}: Signer not available. Connection might be incomplete or failed.`);\n }\n return this.signer;\n }\n\n /**\n * sign a message with the specified account.\n */\n abstract signMessage(message: string, address: string): Promise<string | undefined>;\n\n public hasConnectionUri(): boolean {\n return false\n }\n\n public async getConnectionUri(): Promise<string | undefined >{\n return this.connectionUri;\n }\n\n public async updateAccountsForChain(chainId: string): Promise<Account[]> {\n return [...this.accounts];\n }\n}\n","import { BaseConnector } from './base';\nimport type { Account, Signer } from '../types';\nimport { mapInjectedAccounts } from '../utils'\nimport { Injected, InjectedAccount } from 'dedot/types'\nimport { stringToHex } from 'dedot/utils'\nimport { ConnectorLinks } from '../types'\n\nexport interface CommonConnectorOptions {\n id: string;\n name: string;\n icon: string;\n links: ConnectorLinks;\n injectorId?: string;\n}\n\nexport class CommonConnector extends BaseConnector {\n readonly id: string;\n readonly name: string;\n readonly icon: string;\n readonly links: ConnectorLinks;\n protected readonly injectorId: string;\n\n private unsubscribe: (() => void) | null = null;\n\n private specificInjector?: Injected = undefined\n\n constructor(options: CommonConnectorOptions) {\n super();\n this.id = options.id;\n this.name = options.name;\n this.icon = options.icon;\n this.links = options.links;\n this.injectorId = options.injectorId || options.id;\n }\n\n public isInstalled(): boolean {\n if (typeof window === 'undefined') return false;\n const injectedWeb3 = window.injectedWeb3;\n return typeof injectedWeb3 === 'object' && typeof injectedWeb3[this.injectorId] !== 'undefined';\n }\n\n public async isAvailable(): Promise<boolean> {\n return this.isInstalled();\n }\n\n public async connect(appName: string): Promise<Array<Account>> {\n console.log(`Connector ${this.id}: Attempting to connect...`);\n if (this.signer) {\n console.log(`Connector ${this.id}: Already connected.`);\n return [...this.accounts];\n }\n if (!(await this.isAvailable())) {\n throw new Error(`${this.name} extension not found or not enabled.`);\n }\n\n try {\n this.specificInjector = await window.injectedWeb3![this.injectorId]!.enable(appName);\n\n if (!this.specificInjector) {\n throw new Error(`Failed to enable the '${this.id}' extension.`);\n }\n\n this.signer = this.specificInjector.signer as Signer;\n\n if (!this.signer) {\n throw new Error(`Could not get signer from ${this.name}.`);\n }\n\n const rawAccounts = await this.specificInjector.accounts.get();\n if (rawAccounts.length === 0) {\n throw new Error(`No accounts found in ${this.name}. Make sure accounts are visible and access is granted.`);\n }\n this.accounts = mapInjectedAccounts(rawAccounts, this.id);\n console.log(`Connector ${this.id}: Initial accounts loaded`, this.accounts);\n\n await this.startSubscription();\n\n this.emit('connect', [...this.accounts]);\n\n return [...this.accounts];\n\n } catch (error) {\n console.error(`Connector ${this.id}: Connection failed:`, error);\n await this.cleanup();\n throw error;\n }\n }\n\n public async disconnect(): Promise<void> {\n console.log(`Connector ${this.id}: Disconnecting...`);\n await this.cleanup();\n this.emit('disconnect');\n }\n\n public async signMessage(message: string, address: string): Promise<string | undefined> {\n if (!address || !message) return undefined;\n const signer = await this.getSigner();\n if (!signer || !signer?.signRaw) {\n throw new Error('Signer is not available or does not support signRaw.');\n }\n const accounts = await this.getAccounts();\n if (!accounts.some(acc => acc.address.toLowerCase() === address.toLowerCase())) {\n throw new Error(`Address ${address} is not managed by ${this.name}.`);\n }\n\n try {\n const dataHex = stringToHex(message);\n const result = await signer.signRaw({ address, data: dataHex, type: 'bytes' });\n return result.signature;\n } catch (error: any) {\n throw new Error(`Connector ${this.id}: Failed to sign message: ${error.message}`);\n }\n }\n\n\n private async startSubscription(): Promise<void> {\n await this.cleanupSubscription();\n if (!this.specificInjector) {\n throw new Error(`Connector ${this.id}: Cannot subscribe, specificInjector not available.`);\n }\n\n try {\n this.unsubscribe = this.specificInjector.accounts.subscribe(\n (updatedRawAccounts: InjectedAccount[]) => {\n const newAccounts = mapInjectedAccounts(updatedRawAccounts, this.id);\n if (JSON.stringify(this.accounts) !== JSON.stringify(newAccounts)) {\n this.accounts = newAccounts;\n this.emit('accountsChanged', [...this.accounts]);\n }\n }\n );\n console.log(`Connector ${this.id}: Subscribed to account changes.`);\n } catch (error) {\n console.error(`Connector ${this.id}: Failed to subscribe to accounts:`, error);\n this.unsubscribe = null;\n }\n }\n\n private async cleanupSubscription(): Promise<void> {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n console.log(`Connector ${this.id}: Unsubscribed from account changes.`);\n }\n }\n\n\n private async cleanup(): Promise<void> {\n await this.cleanupSubscription();\n this.accounts = [];\n this.signer = undefined;\n this.specificInjector = undefined\n }\n}\n","import { CommonConnector } from './common'\nimport { polkadotjsSVG } from '../config/logos/generated'\n\nexport const polkadotjsConnector = () => {\n return new CommonConnector({\n id: 'polkadot-js',\n name: 'Polkadot{.js}',\n icon: polkadotjsSVG,\n links: {\n browserExtension: 'https://polkadot.js.org/extension'\n }\n });\n}\n","import { polkagateSVG } from '../config/logos/generated'\nimport { CommonConnector } from './common'\n\nexport const polkagateConnector = () => {\n return new CommonConnector({\n id: 'polkagate',\n name: 'Polkagate',\n icon: polkagateSVG,\n links: {\n browserExtension: 'https://chromewebstore.google.com/detail/polkagate-the-gateway-to/ginchbkmljhldofnbjabmeophlhdldgp'\n }\n });\n}\n","import { subwalletSVG } from '../config/logos/generated'\nimport { CommonConnector } from './common'\n\nexport const subwalletConnector = () => {\n return new CommonConnector({\n id: 'subwallet-js',\n name: 'SubWallet',\n icon: subwalletSVG,\n links: {\n browserExtension: 'https://chromewebstore.google.com/detail/subwallet-polkadot-wallet/onhogfjeacnfoofkfgppdlbmlmnplgbn',\n deepLink: 'https://mobile.subwallet.app/browser',\n }\n })\n};\n","import { talismanSVG } from '../config/logos/generated'\nimport { CommonConnector } from './common'\n\nexport const talismanConnector = () => {\n return new CommonConnector({\n id: 'talisman',\n name: 'Talisman',\n icon: talismanSVG,\n links: {\n browserExtension: 'https://chromewebstore.google.com/detail/talisman-wallet/fijngjgcjhjmmpcmkeiomlglpeiijkld'\n }\n });\n}\n","import { BaseConnector } from './base';\nimport type { IUniversalProvider, Metadata } from '@walletconnect/universal-provider';\nimport { SessionTypes } from '@walletconnect/types'\nimport type { Account, Chain, Signer, WalletConnectConnectorOptions } from '../types';\nimport { walletconnectSVG } from '../config/logos/generated';\nimport { SignerResult, SignerPayloadJSON } from 'dedot/types'\nimport {ConnectorLinks} from '../types'\n\nexport class WalletConnectConnector extends BaseConnector {\n readonly id: string;\n readonly name: string;\n readonly icon: string;\n readonly links: ConnectorLinks;\n\n private provider?: IUniversalProvider;\n private projectId: string;\n private relayUrl: string;\n private metadata?: Metadata;\n\n private session?: SessionTypes.Struct;\n private connectedChains?: Chain[];\n\n constructor(options: WalletConnectConnectorOptions) {\n super();\n this.id = options.id || 'walletconnect';\n this.name = options.name || 'WalletConnect';\n this.links = options.links || {};\n\n this.icon = options.icon || walletconnectSVG;\n\n this.projectId = options.projectId;\n this.relayUrl = options.relayUrl || 'wss://relay.walletconnect.com';\n this.metadata = options.metadata;\n }\n\n public isInstalled(): boolean {\n return true;\n }\n\n public async isAvailable(): Promise<boolean> {\n return true;\n }\n\n private convertChainIdToCaipId(chains: Chain[]): string[] {\n return chains.map(chain => `polkadot:${chain.genesisHash.replace('0x', '').slice(0, 32)}`);\n }\n\n public async connect(appName: string, chains?: Chain[], targetChainId?: string): Promise<Array<Account>> {\n if (!this.projectId) {\n throw new Error(`${this.name} requires a projectId. Please visit https://cloud.walletconnect.com to get one.`);\n }\n\n if (!chains || chains.length === 0) {\n throw new Error(`${this.name} requires chains configuration.`);\n }\n\n this.connectedChains = chains;\n\n const { UniversalProvider } = await import(\"@walletconnect/universal-provider\");\n\n try {\n this.provider = await UniversalProvider.init({\n projectId: this.projectId,\n relayUrl: this.relayUrl,\n metadata: this.metadata || {\n name: appName,\n description: 'LunoKit DApp',\n url: typeof window !== 'undefined' ? window.location.origin : '',\n icons: [this.icon],\n },\n });\n\n const chainIdToUse = targetChainId || chains[0].genesisHash;\n\n if (this.provider.session) {\n this.session = this.provider.session;\n const accounts = this.getAccountsFromSession(chains, chainIdToUse);\n this.accounts = accounts;\n this.emit('connect', [...this.accounts]);\n return [...this.accounts];\n }\n\n if (!this.provider?.client) {\n throw new Error(\"Provider not initialized or not connected\");\n }\n\n const { uri, approval } = await this.provider.client.connect({\n requiredNamespaces: {\n polkadot: {\n methods: ['polkadot_signMessage', 'polkadot_sendTransaction', 'polkadot_signTransaction', 'polkadot_requestAccounts'],\n chains: this.convertChainIdToCaipId(chains),\n events: ['accountsChanged', 'chainChanged', 'connect'],\n },\n },\n optionalNamespaces: {\n polkadot: {\n methods: ['polkadot_signMessage', 'polkadot_sendTransaction', 'polkadot_signTransaction', 'polkadot_requestAccounts'],\n chains: this.convertChainIdToCaipId(chains),\n events: ['accountsChanged', 'chainChanged', 'connect'],\n },\n },\n });\n\n this.emit('get_uri', uri);\n\n const session = await approval();\n this.session = session;\n this.provider.session = session;\n\n this.connectionUri = undefined;\n\n const accounts = this.getAccountsFromSession(chains, chainIdToUse);\n this.accounts = accounts;\n this.emit('connect', [...this.accounts]);\n return [...this.accounts];\n\n } catch (error) {\n this.connectionUri = undefined;\n throw error;\n }\n }\n\n private getAccountsFromSession(chains: Chain[], chainId: string): Account[] {\n const targetChain = chains.filter(chain => chain.genesisHash.toLowerCase() === chainId.toLowerCase())\n const caipId = this.convertChainIdToCaipId(targetChain)[0];\n\n let rawAccounts = this.session?.namespaces.polkadot.accounts\n .flat()\n .filter((address: string) => address.includes(caipId))\n .map((address: string) => address.replace(`${caipId}:`, \"\"))\n\n if (rawAccounts && rawAccounts.length === 0) {\n console.error(`No accounts found for the specified chain, please connect to the correct chain`);\n\n const caipId = this.convertChainIdToCaipId(chains)[0];\n\n rawAccounts = this.session?.namespaces.polkadot.accounts\n .flat()\n .filter((address: string) => address.includes(caipId))\n .map((address: string) => address.replace(`${caipId}:`, \"\"))\n }\n\n const result = rawAccounts!\n .map((address: string) => ({\n address,\n name: `${this.name} Account`,\n meta: {\n source: this.id,\n },\n publicKey: undefined,\n }));\n\n this.emit('accountsChanged', [...result]);\n\n return result!\n }\n\n public async disconnect(): Promise<void> {\n if (this.provider) {\n await Promise.race([\n await this.provider.disconnect(),\n new Promise((_, reject) =>\n setTimeout(() => reject(new Error('Disconnect timeout')), 5000)\n )\n ]);\n this.provider = undefined;\n this.connectionUri = undefined;\n this.accounts = [];\n this.signer = undefined;\n this.emit('disconnect');\n }\n }\n\n public async signMessage(message: string, address: string, chainId?: string): Promise<string | undefined> {\n if (!this.provider?.client || !this.session?.topic) {\n throw new Error(\"Provider not initialized or not connected\");\n }\n\n try {\n const result = await this.provider.client.request({\n topic: this.session.topic,\n chainId: this.convertChainIdToCaipId(this.connectedChains!)[0],\n request: {\n method: 'polkadot_signMessage',\n params: {\n address,\n message,\n type: 'bytes'\n },\n },\n });\n\n return (result as any)?.signature;\n } catch (error) {\n console.error('Sign message error:', error);\n throw error;\n }\n }\n\n public hasConnectionUri(): boolean {\n return true\n }\n\n public async getConnectionUri(): Promise<string> {\n if (this.connectionUri) {\n return this.connectionUri;\n }\n\n return new Promise<string>((resolve) => {\n this.once('get_uri', (uri: string) => {\n this.connectionUri = uri;\n resolve(uri);\n });\n });\n }\n\n public async updateAccountsForChain(chainId: string) {\n if (!this.connectedChains) {\n throw new Error('WalletConnect not connected');\n }\n\n const newAccounts = this.getAccountsFromSession(this.connectedChains, chainId);\n this.accounts = newAccounts;\n\n return newAccounts;\n }\n\n\n public async getSigner(): Promise<Signer | undefined> {\n if (!this.provider?.client || !this.session) return undefined;\n\n return {\n signPayload: async (payload: SignerPayloadJSON): Promise<SignerResult> => {\n try {\n const result = await this.provider?.client?.request<{ signature: string }>({\n topic: this.session!.topic,\n chainId: `polkadot:${payload.genesisHash.replace('0x', '').slice(0, 32)}`,\n request: {\n method: 'polkadot_signTransaction',\n params: {\n address: payload.address,\n transactionPayload: payload,\n },\n },\n });\n return result as SignerResult;\n } catch (error) {\n throw new Error(`Transaction signing failed: ${JSON.stringify(error)}`);\n }\n }\n };\n }\n}\n\nexport const walletConnectConnector = (options: WalletConnectConnectorOptions) =>\n new WalletConnectConnector(options);\n","import { novaSVG } from '../config/logos/generated'\nimport { CommonConnector } from './common'\n\nexport class NovaMobileConnector extends CommonConnector {\n constructor() {\n super({\n id: 'nova-mobile',\n name: 'Nova Wallet (Mobile)',\n icon: novaSVG,\n injectorId: 'polkadot-js',\n links: {\n deepLink: 'https://app.novawallet.io/open/dapp'\n }\n });\n }\n\n public isInstalled(): boolean {\n if (typeof window === 'undefined') return false;\n const injectedWeb3 = window.injectedWeb3;\n return (\n typeof injectedWeb3 === 'object' &&\n typeof injectedWeb3['polkadot-js'] !== 'undefined' &&\n window.walletExtension?.isNovaWallet === true\n );\n }\n\n public async isAvailable(): Promise<boolean> {\n return this.isInstalled();\n }\n}\n\nexport const novaMobileConnector = () => new NovaMobileConnector()\n","import { novaSVG } from '../config/logos/generated'\nimport { WalletConnectConnector } from './walletconnect'\nimport type { Metadata } from '@walletconnect/universal-provider'\nimport { novaMobileConnector } from './novaMobile'\nimport { isMobileDevice } from '../utils'\n\ntype WalletConnectConfig = {\n projectId: string;\n relayUrl?: string;\n metadata?: Metadata;\n}\n\ntype MobileOnlyConfig = {\n mobileOnly: true;\n}\n\ntype NovaConnectorConfig = WalletConnectConfig | MobileOnlyConfig;\n\nexport const novaConnector = (config: NovaConnectorConfig) => {\n if ((config as MobileOnlyConfig).mobileOnly && !isMobileDevice()) {\n throw new Error('Nova Wallet mobile connector cannot be used on desktop devices');\n }\n\n if ((config as MobileOnlyConfig).mobileOnly) {\n throw new Error('Nova Wallet is not installed. Please install Nova Wallet to continue.');\n }\n\n if (isMobileDevice()) {\n return novaMobileConnector();\n }\n\n return new WalletConnectConnector({\n id: 'nova',\n name: 'Nova Wallet',\n icon: novaSVG,\n links: {\n browserExtension: 'https://novawallet.io',\n },\n ...config as WalletConnectConfig,\n });\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import {d,a,c,j}from'./chunk-VGIE4R7S.js';var r={genesisHash:"0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3",name:"Polkadot",nativeCurrency:{name:"Polkadot",symbol:"DOT",decimals:10},rpcUrls:{webSocket:["wss://rpc.polkadot.io","wss://polkadot.api.onfinality.io/public-ws"],http:["https://rpc.polkadot.io"]},ss58Format:0,blockExplorers:{default:{name:"Subscan",url:"https://polkadot.subscan.io"}},chainIconUrl:d};var p={genesisHash:"0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe",name:"Kusama",nativeCurrency:{name:"Kusama",symbol:"KSM",decimals:12},rpcUrls:{webSocket:["wss://kusama-rpc.polkadot.io","wss://kusama.api.onfinality.io/public-ws"]},ss58Format:2,blockExplorers:{default:{name:"Subscan",url:"https://kusama.subscan.io"}},chainIconUrl:a};var l={genesisHash:"0x77afd6190f1554ad45fd0d31aee62aacc33c6db0ea801129acb813f913e0764f",name:"Paseo",nativeCurrency:{name:"Paseo",symbol:"PAS",decimals:10},rpcUrls:{webSocket:["wss://rpc.ibp.network/paseo","wss://paseo.rpc.amforc.com"]},ss58Format:0,blockExplorers:{default:{name:"Subscan",url:"https://paseo.subscan.io/"}},chainIconUrl:c,testnet:true};var b={genesisHash:"0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e",name:"Westend",nativeCurrency:{name:"Westend",symbol:"WND",decimals:12},rpcUrls:{webSocket:["wss://westend-rpc.polkadot.io"]},ss58Format:42,blockExplorers:{default:{name:"Subscan",url:"https://westend.subscan.io"}},chainIconUrl:j,testnet:true};
2
+ export{r as a,p as b,l as c,b as d};//# sourceMappingURL=chunk-OP5E5KNE.js.map
3
+ //# sourceMappingURL=chunk-OP5E5KNE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/chains/polkadot.ts","../src/chains/kusama.ts","../src/chains/paseo.ts","../src/chains/westend.ts"],"names":["polkadot","polkadotSVG","kusama","kusamaSVG","paseo","paseoSVG","westend","westendSVG"],"mappings":"0CAGO,IAAMA,EAAkB,CAC7B,WAAA,CAAa,oEAAA,CACb,IAAA,CAAM,WACN,cAAA,CAAgB,CAAE,IAAA,CAAM,UAAA,CAAY,OAAQ,KAAA,CAAO,QAAA,CAAU,EAAG,CAAA,CAChE,QAAS,CACP,SAAA,CAAW,CAAC,uBAAA,CAAyB,4CAA4C,CAAA,CACjF,IAAA,CAAM,CAAC,yBAAyB,CAClC,CAAA,CACA,UAAA,CAAY,CAAA,CACZ,cAAA,CAAgB,CAAE,OAAA,CAAS,CAAE,KAAM,SAAA,CAAW,GAAA,CAAK,6BAA8B,CAAE,CAAA,CACnF,YAAA,CAAcC,CAChB,ECXO,IAAMC,CAAAA,CAAgB,CAC3B,WAAA,CAAa,qEACb,IAAA,CAAM,QAAA,CACN,cAAA,CAAgB,CAAE,KAAM,QAAA,CAAU,MAAA,CAAQ,KAAA,CAAO,QAAA,CAAU,EAAG,CAAA,CAC9D,OAAA,CAAS,CAAE,SAAA,CAAW,CAAC,8BAAA,CAAgC,0CAA0C,CAAE,CAAA,CACnG,WAAY,CAAA,CACZ,cAAA,CAAgB,CAAE,OAAA,CAAS,CAAE,IAAA,CAAM,SAAA,CAAW,IAAK,2BAA4B,CAAE,EACjF,YAAA,CAAcC,CAChB,ECRO,IAAMC,EAAe,CAC1B,WAAA,CAAa,oEAAA,CACb,IAAA,CAAM,QACN,cAAA,CAAgB,CAAE,IAAA,CAAM,OAAA,CAAS,OAAQ,KAAA,CAAO,QAAA,CAAU,EAAG,CAAA,CAC7D,QAAS,CAAE,SAAA,CAAW,CAAC,6BAAA,CAA+B,4BAA4B,CAAE,CAAA,CACpF,UAAA,CAAY,CAAA,CACZ,eAAgB,CAAE,OAAA,CAAS,CAAE,IAAA,CAAM,UAAW,GAAA,CAAK,2BAA4B,CAAE,CAAA,CACjF,YAAA,CAAcC,EACd,OAAA,CAAS,IACX,ECTO,IAAMC,EAAiB,CAC5B,WAAA,CAAa,oEAAA,CACb,IAAA,CAAM,UACN,cAAA,CAAgB,CAAE,IAAA,CAAM,SAAA,CAAW,OAAQ,KAAA,CAAO,QAAA,CAAU,EAAG,CAAA,CAC/D,QAAS,CAAE,SAAA,CAAW,CAAC,+BAA+B,CAAE,CAAA,CACxD,UAAA,CAAY,EAAA,CACZ,cAAA,CAAgB,CAAE,OAAA,CAAS,CAAE,IAAA,CAAM,SAAA,CAAW,IAAK,4BAA6B,CAAE,EAClF,YAAA,CAAcC,CAAAA,CACd,QAAS,IACX","file":"chunk-OP5E5KNE.js","sourcesContent":["import type { Chain } from '../types'\nimport { polkadotSVG } from '../config/logos/generated'\n\nexport const polkadot: Chain = {\n genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3',\n name: 'Polkadot',\n nativeCurrency: { name: 'Polkadot', symbol: 'DOT', decimals: 10 },\n rpcUrls: {\n webSocket: ['wss://rpc.polkadot.io', 'wss://polkadot.api.onfinality.io/public-ws'],\n http: ['https://rpc.polkadot.io'],\n },\n ss58Format: 0,\n blockExplorers: { default: { name: 'Subscan', url: 'https://polkadot.subscan.io' } },\n chainIconUrl: polkadotSVG\n};\n","import type { Chain } from '../types'\nimport { kusamaSVG } from '../config/logos/generated'\n\nexport const kusama: Chain = {\n genesisHash: '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe',\n name: 'Kusama',\n nativeCurrency: { name: 'Kusama', symbol: 'KSM', decimals: 12 },\n rpcUrls: { webSocket: ['wss://kusama-rpc.polkadot.io', 'wss://kusama.api.onfinality.io/public-ws'] },\n ss58Format: 2,\n blockExplorers: { default: { name: 'Subscan', url: 'https://kusama.subscan.io' } },\n chainIconUrl: kusamaSVG\n};\n","import type { Chain } from '../types'\nimport { paseoSVG } from '../config/logos/generated'\n\nexport const paseo: Chain = {\n genesisHash: '0x77afd6190f1554ad45fd0d31aee62aacc33c6db0ea801129acb813f913e0764f',\n name: 'Paseo',\n nativeCurrency: { name: 'Paseo', symbol: 'PAS', decimals: 10 },\n rpcUrls: { webSocket: ['wss://rpc.ibp.network/paseo', 'wss://paseo.rpc.amforc.com'] },\n ss58Format: 0,\n blockExplorers: { default: { name: 'Subscan', url: 'https://paseo.subscan.io/' } },\n chainIconUrl: paseoSVG,\n testnet: true\n};\n","import type { Chain } from '../types'\nimport { westendSVG } from '../config/logos/generated'\n\nexport const westend: Chain = {\n genesisHash: '0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e',\n name: 'Westend',\n nativeCurrency: { name: 'Westend', symbol: 'WND', decimals: 12 },\n rpcUrls: { webSocket: ['wss://westend-rpc.polkadot.io'] },\n ss58Format: 42,\n blockExplorers: { default: { name: 'Subscan', url: 'https://westend.subscan.io' } },\n chainIconUrl: westendSVG,\n testnet: true,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import {decodeAddress,encodeAddress,u8aEq,u8aToHex}from'dedot/utils';export{formatBalance as c}from'dedot/utils';function g(t,e=0,r=4){if(t==null||t==="")return "0";let n=typeof t=="bigint"?t:BigInt(t);if(e===0)return n.toString();let c=BigInt(10)**BigInt(e),o=n/c,s=n%c;if(s===0n)return o.toString();let a=s.toString().padStart(e,"0").substring(0,r).replace(/0+$/,"");return a?`${o.toString()}.${a}`:o.toString()}function m(t,e=4,r=4){if(!t)return "";if(t.length<=e+r)return t;let n=t.slice(0,e),c=r>0?t.slice(-r):"";return `${n}...${c}`}function x(t){try{let e=decodeAddress(t);return encodeAddress(e),!0}catch{return false}}function A(t,e){try{let r=decodeAddress(t);return encodeAddress(r,e)}catch(r){throw new Error(`Failed to convert address: ${r.message}`)}}function $(t,e){try{let r=decodeAddress(t),n=decodeAddress(e);return u8aEq(r,n)}catch{return false}}function S(t){try{let e=decodeAddress(t);if(e.length!==32)throw new Error(`Invalid public key length: expected 32 bytes, got ${e.length}`);return e}catch(e){throw new Error(`Failed to get public key: ${e.message}`)}}function k(t,e){if(!t)return [];try{return t.map(r=>{let n;try{let o=decodeAddress(r.address);n=u8aToHex(o);}catch(o){console.error(`Failed to decode address "${r.address}" to extract public key:`,o);}return {address:r.address,name:r.name,publicKey:n,meta:{source:e,genesisHash:r.genesisHash},type:r.type}})}catch(r){throw new Error(`Failed to map injected accounts: ${r.message}`)}}function I(t){return t}function K(t){return t.nativeCurrency.symbol}function B(t="",e="",r="transaction"){if(!t)return "";switch(r){case "transaction":return `${t}/extrinsic/${e}`;case "address":return `${t}/account/${e}`;case "block":return `${t}/block/${e}`;default:return t}}var E=()=>typeof window<"u"&&window.navigator&&window.navigator.userAgent?/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(window.navigator.userAgent.toLowerCase()):false;export{g as a,m as b,x as d,A as e,$ as f,S as g,k as h,I as i,K as j,B as k,E as l};//# sourceMappingURL=chunk-SYUDETGE.js.map
2
+ //# sourceMappingURL=chunk-SYUDETGE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/format.ts","../src/utils/address.ts","../src/utils/chain.ts","../src/utils/device.ts"],"names":["formatBalance","value","decimals","fixedDecimals","bn","base","whole","fraction","truncatedFraction","formatAddress","address","prefixLength","suffixLength","prefix","suffix","isValidAddress","decoded","decodeAddress","encodeAddress","convertAddress","ss58Format","publicKey","error","isSameAddress","address1","address2","publicKey1","publicKey2","u8aEq","getPublicKey","mapInjectedAccounts","injectedAccounts","sourceId","acc","publicKeyHex","publicKeyBytes","u8aToHex","e","defineChain","chain","getChainToken","getExplorerUrl","explorerUrl","data","type","isMobileDevice"],"mappings":"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","file":"chunk-SYUDETGE.js","sourcesContent":["/**\n * format balance\n */\nexport function formatBalance(\n value: string | number | bigint | undefined,\n decimals: number = 0,\n fixedDecimals: number = 4\n): string {\n if (value === undefined || value === null || value === '') {\n return '0';\n }\n\n const bn = typeof value === 'bigint' ? value : BigInt(value);\n\n if (decimals === 0) {\n return bn.toString();\n }\n\n const base = BigInt(10) ** BigInt(decimals);\n const whole = bn / base;\n const fraction = bn % base;\n\n if (fraction === 0n) {\n return whole.toString();\n }\n\n const paddedFraction = fraction.toString().padStart(decimals, '0');\n const truncatedFraction = paddedFraction\n .substring(0, fixedDecimals)\n .replace(/0+$/, '');\n\n return truncatedFraction ? `${whole.toString()}.${truncatedFraction}` : whole.toString();\n}\n\n/**\n * format address display\n */\nexport function formatAddress(\n address?: string,\n prefixLength = 4,\n suffixLength = 4\n): string {\n if (!address) return '';\n if (address.length <= prefixLength + suffixLength) return address;\n\n const prefix = address.slice(0, prefixLength);\n const suffix = suffixLength > 0 ? address.slice(-suffixLength) : '';\n\n return `${prefix}...${suffix}`;\n}\n\nexport { formatBalance as formatBalanceWithUnit } from 'dedot/utils';\n","import { decodeAddress, encodeAddress } from 'dedot/utils';\nimport type { Account } from '../types';\nimport { u8aEq, u8aToHex } from 'dedot/utils'\nimport type { InjectedAccount } from 'dedot/types'\nimport type { HexString } from 'dedot/utils'\n\n/**\n * check if address is valid\n */\nexport function isValidAddress(address: string): boolean {\n try {\n const decoded = decodeAddress(address);\n encodeAddress(decoded);\n return true;\n } catch (error) {\n return false;\n }\n}\n\n/**\n * convert address to specified SS58 format\n */\nexport function convertAddress(address: string, ss58Format: number): string {\n try {\n const publicKey = decodeAddress(address);\n return encodeAddress(publicKey, ss58Format);\n } catch (error: any) {\n throw new Error(`Failed to convert address: ${error.message}`);\n }\n}\n\n/**\n * check if two addresses are the same (ignore SS58 format)\n */\nexport function isSameAddress(address1: string, address2: string): boolean {\n try {\n const publicKey1 = decodeAddress(address1);\n const publicKey2 = decodeAddress(address2);\n\n return u8aEq(publicKey1, publicKey2)\n } catch (error: any) {\n return false;\n }\n}\n\n/**\n * get address public key (Currently, Ethereum addresses are not supported.)\n */\nexport function getPublicKey(address: string): Uint8Array {\n try {\n const publicKey = decodeAddress(address);\n if (publicKey.length !== 32) {\n throw new Error(`Invalid public key length: expected 32 bytes, got ${publicKey.length}`);\n }\n return publicKey;\n } catch (error: any) {\n throw new Error(`Failed to get public key: ${error.message}`);\n }\n}\n\n/**\n * map injected accounts to internal Account type\n * mainly extract address, name, source, and try to decode public key\n */\nexport function mapInjectedAccounts(injectedAccounts: InjectedAccount[], sourceId: string): Account[] {\n if (!injectedAccounts) return []\n\n try {\n return injectedAccounts.map((acc: InjectedAccount) => {\n let publicKeyHex: HexString | undefined;\n try {\n const publicKeyBytes = decodeAddress(acc.address);\n publicKeyHex = u8aToHex(publicKeyBytes);\n } catch (error) {\n console.error(`Failed to decode address \"${acc.address}\" to extract public key:`, error);\n }\n\n const mappedAccount: Account = {\n address: acc.address,\n name: acc.name,\n publicKey: publicKeyHex,\n meta: {\n source: sourceId,\n genesisHash: acc.genesisHash,\n },\n type: acc.type\n };\n\n return mappedAccount;\n });\n } catch (e: any) {\n throw new Error(`Failed to map injected accounts: ${e.message}`);\n }\n}\n","import type { Chain } from '../types'\n\nexport function defineChain(chain: Chain): Chain {\n return chain;\n}\n\nexport function getChainToken(chain: Chain): string {\n return chain.nativeCurrency.symbol;\n}\n\nexport function getExplorerUrl(explorerUrl = '', data = '', type: 'transaction' | 'address' | 'block' = 'transaction'): string {\n if (!explorerUrl) return '';\n\n switch (type) {\n case 'transaction':\n return `${explorerUrl}/extrinsic/${data}`;\n case 'address':\n return `${explorerUrl}/account/${data}`;\n case 'block':\n return `${explorerUrl}/block/${data}`;\n default:\n return explorerUrl;\n }\n}\n","export const isMobileDevice = () => {\n if (typeof window !== 'undefined' && window.navigator && window.navigator.userAgent) {\n return /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(\n window.navigator.userAgent.toLowerCase()\n );\n }\n return false\n};\n"]}
@@ -0,0 +1,2 @@
1
+ var M="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NDEgNDQxIj48ZGVmcz48c3R5bGU+LmNscy0xe3N0cm9rZTojMDAwO3N0cm9rZS1taXRlcmxpbWl0OjEwO30uY2xzLTJ7ZmlsbDojZmZmO308L3N0eWxlPjwvZGVmcz48dGl0bGU+a3VzYW1hLWtzbS1sb2dvPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMC41IiB5PSIwLjUiIHdpZHRoPSI0NDAiIGhlaWdodD0iNDQwIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMzczLjYsMTI3LjRjLTUuMi00LjEtMTEuNC05LjctMjIuNy0xMS4xLTEwLjYtMS40LTIxLjQsNS43LTI4LjcsMTAuNHMtMjEuMSwxOC41LTI2LjgsMjIuNy0yMC4zLDguMS00My44LDIyLjItMTE1LjcsNzMuMy0xMTUuNyw3My4zbDI0LC4zLTEwNyw1NS4xSDYzLjZMNDguMiwzMTJzMTMuNiwzLjYsMjUtMy42djMuM3MxMjcuNC01MC4yLDE1Mi0zNy4ybC0xNSw0LjRjMS4zLDAsMjUuNSwxLjYsMjUuNSwxLjZhMzQuMzQsMzQuMzQsMCwwLDAsMTUuNCwyNC44YzE0LjYsOS42LDE0LjksMTQuOSwxNC45LDE0LjlzLTcuNiwzLjEtNy42LDdjMCwwLDExLjItMy40LDIxLjYtMy4xYTgyLjY0LDgyLjY0LDAsMCwxLDE5LjUsMy4xcy0uOC00LjItMTAuOS03LTIwLjEtMTMuOC0yNS0xOS44YTI4LDI4LDAsMCwxLTQuMS0yNy40YzMuNS05LjEsMTUuNy0xNC4xLDQwLjktMjcuMSwyOS43LTE1LjQsMzYuNS0yNi44LDQwLjctMzUuN3MxMC40LTI2LjYsMTMuOS0zNC45YzQuNC0xMC43LDkuOC0xNi40LDE0LjMtMTkuOHMyNC41LTEwLjksMjQuNS0xMC45UzM3OC41LDEzMS4zLDM3My42LDEyNy40WiIvPjwvZz48L2c+PC9zdmc+";var N="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjY0cHgiIGhlaWdodD0iNjRweCIgdmlld0JveD0iMCAwIDY0IDY0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2NCA2NCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHNjcmlwdCB4bWxucz0iIi8+PHNjcmlwdCB4bWxucz0iIiBpZD0iYXJnZW50LXgtZXh0ZW5zaW9uIiBkYXRhLWV4dGVuc2lvbi1pZD0iZGxjb2JwamlpZ3Bpa29vYm9obWFiZWhobWhmb29kYmIiLz48U0NSSVBUIHhtbG5zPSIiIGlkPSJhbGxvdy1jb3B5X3NjcmlwdCIvPjxzY3JpcHQgeG1sbnM9IiIvPjxzY3JpcHQgeG1sbnM9IiIvPiAgPGltYWdlIGlkPSJpbWFnZTAiIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgeD0iMCIgeT0iMCIgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFFQUFBQUJBQ0FZQUFBQ3FhWEhlQUFBQUlHTklVazBBQUhvbUFBQ0FoQUFBK2dBQUFJRG8gQUFCMU1BQUE2bUFBQURxWUFBQVhjSnk2VVR3QUFBQUdZa3RIUkFEL0FQOEEvNkM5cDVNQUFBQUpjRWhaY3dBQUN4TUFBQXNUQVFDYSBuQmdBQUFBSGRFbE5SUWZwQnhFSEV3ak5ZZE1sQUFBUTNrbEVRVlI0MnNWYlRheGR5VkgrcXJ2dmZmNTVkbUsvRi85N2Z1enhlSmdaIEpFUXlqTmdnSWJHQkJkbG5SeFlJcExCRlNHd1FDOFNLSFFobHhZbzlXV1NMeENaQ0NoRW9HV05uN05pTy8rM25sL0g0K2RudjNkTmQgTExxcXEvcWNlOGNaa01pWjZYZjcvSGRWZmZWVmRmVXh2ZnV0eDR4Vkcva2RCcFAxOVJ3VHdBQkE3cnowbWVwMTlaZkJyZFZqSE9RZSBZbkJZZlIzYzlmV2Q3ajZ5OGJSeHRMRnpKd09QNUFHQXNGeHliaGRnZWc5a1JHTmRnTnd0NU4vTnZoRkl4a2RNY2crTnJ2RkRXQ0lCIHk3dVdEcFA2L21oTTQrdkM2dHRwY21aOFpPV0wyZjJ5R2FNOWc4bERCMko0VXdaSS9qTkJtN0tZM0VqNjUzVkhPMk90VnNKU0JCREkgNUZtaXRZbEYzSVBITHlCdnlaRmx5WjluMnlkVmtMeHZJckJUa0VlVWY5OVVDZTRxaDg0VkxvQ1YxdTZQczdNdUpuRDBGZ1hRRDM3cyBGcTdmN21JU1pmUUlzSHM4QXVBUWdoSHkzUGhHYnBUd0JSczVpZG45SlFEc25rd0FtSjEybU53SURCVU1BclU3Q2VSSWdrVmdnUFgvIFRtMHNkM3VKOUVnalBnYUkzSHRrSHp3bVFIdE9XdW5YM0Y5UHpkNXQrSjFTeHVqZzdnNkZuZ2lxU3ZXK1NXUlBtbmJhbTN2UDlPZTkgYXRIZXcxd0hyKy91ZEVqZUJVYmt1YXhQUzArTi9ub3VjQ1E0SVNpMmZYK3NJMFNtdnU5SG9Wd0I1eWJxNjgxVkhKSHFuU055N0RpQSBmb2syamdibTV5TWlHbXVQN1U1OVZzbTFLZkY1d3B3U1pLOFFwVDU5UC9sSTRKWGxvc2pFT0NCeEFlckhPL1kxRHpacUdEWVFObGcyIEgreERINE1yeFAwRllIeDBjUTFNd0k5dTdzRTVDbEJxWWtTTkpCak0vYWpJNDVnWlRPcVV5bERpRkkwRTVIbktMMVE3aVFoTE5zYnkgNDE3UXFaSk1JMDVCYlA1WkIxQjlNVVhDZDM3L0tFQ01QLzdIZmV3WEc3eTZCSGRVeUNNT29DYXFlNE9NM2Q1am1EUGFyc09yZDZTdyBSSXd2VG5qZ1hqWVdHazNiNmhtZXZEenBIVmtqbkQwZVFRU3NyeEcyZHpYcWlLZ054b28wRTlMaWd1WXN6dkxzbFdEWGdhakxVWVFiIEt3SzZlTG5Dc09POGlMcEJlVVc0ZXpUOGNQK1F3c0Rta1lqTm94R2cydC9lS1VDc2JOM0QyQjQrVmNLeW8reE1SQ1BVNktCTXpCUm8gT3ZBVjBzS0QxUGJjeFIyWDlEY3hPemdXNE94R3d0RkQ5Y2k1NHduWDdnOElMTWdpYmpuQk5COVlKdDc0NkVoNGNsZXdGNDRRQW9CQSBWQnVBSUxHeDlXV2Z5TzBURUJBUUdMWEJHZ2tqQnlZUVFndHpuclVKd0lXVENmTkVtQ2ZDaFpPekxoSlE4WkdoRDJkdHY4c2c5VDRYIEhrdWZPWGJQRng4Z2tDQmdaRlAxUS9OYmRoYWdabEYybG1XWHdqTHFkSlpBS0FvT0loU3hhQ1RDcFRPekJyaExweE9pRUJmUVU1bysgbER0T29Lbk5XWkNEM3NMOTJLZXBmSW9UTnRjMGplemxYalNYemFtN3R0d0RxS0hPS1NLSTBwaHJ2NEJ3NkFCdzhiUmw0UmRQSnh5ZSBFMTdzYzBkcWplWWNtZlVDT0s1b1l1ajRMSWZuRmdZbnVTbVNKUUpPNTZNM3NmTkhuOGl4Q3ljTWh3cDVCVEZYQlBRNU1qYVBSSnpiIGpPM1F1WTJFelNNUkw3WVlSSTdKSjJRNEprQnYyK21MTEI5UjFISUxnVlVPUm9xaEVXT25XQTFaN0poRWhkU0htNHVwRW5pa0JFREQgYkwyR2tFdkJteWNpTm81YUVycHhOT0RORXdtM0h3K1dYekJWTjFyQzBoTlFNK3ExSTJOU2x5QUJFM1V4RUdZRXhGRERRUXBBcE5vUyBBUkh5cXczYUoydUFOVGtXSUlTcXY4SVRsVEFKdjNaK2hyV1pDWFJnUm5qLzNNeElxcEZlalJoS2hsWXZHRTJWaFhoYkhZRUpWRWJIIDJqNjZaNlFVVEt0cXRtcDFnYUpEQjQrYmFKNFpLTTdxU29wRkxGRWNFdFlTNFlPM2pBQjErL0ROR2VhUmtCM3BVcFcvK1hFZi9URnggaGk0RkowUEJOSzAxdktjVW5VUmVhSmZFOEVRSkRNMWNtUW1GTElvdzZxQjFnUDVjWm1EalNNRGw4OU15eEh2blo5ZzRFdkQ0V1ViUCA5MDVBSjB4L0hDM3I3RE5IcnhxdktqdVNadWFrYmU3TTR0dysxTUgxMWFyS0FjUVY2b1g5SktRcVFsOVdtRkVLY1BGMHhCbEhnTHFkIDNZaDQ1MVRDbzE5a0JIK2FMZVBzUXMvS1hLOWo3ODc2WXVNdU9vb0N6UElLK2JIMWZmT1FMbHdUbzhKVzFDQzJPSzZLQWhFQ0FWKy8gUE1mQnRlbHM0K0FhNFJ2dnJ1RUgvNzJQd0FKOWpJWEZTTkNwOEZZRmNzS3o1Zjc5N1l3d2k4QXNFdW92a0xTRkpZM3NkMHlXMmsvUSA4NFFJSThuQXdGY09FVDcrWUk1VjIyKy9QOGZSZ3dHUVRESjRVdFFNRVk3OE9uS3pETEdSNXFSaDBnK3pBR2hMcmo5Ym9vQVluS0NyIEZCRkdFVU1TWWhUZ055L1A4ZDVicTh1UUg3NDF3MGZ2emwyUnBFYU5sZ0tESkUzdUJWUEk5cW15UkpDQ3RxK1JBWkkyRXhQU0xGV2MgTWp0Zlo0RGxXR0g3RGFPK3VrSlJGM0RvSWtkS0pRTnZuNG40OWpjUExZVy9kNE0vL2NOMTNIb3c0TWJEQVNGV0h3K1NScmRNckxtNCBpLzBLZVFzRDdUb3RrRTZpQVFQeDQ5LzU4Ny9xSmpuazRuZW8reXFRbmlleWZTS3JxL201WVNuVnh3NGZKSHpqd3ptKzg2MTFmUERPIE5QeU50MVBISTM3OTdUbWVmbDZ3OWF6ZzFjTFBBNmhqQXE4T2Y1eTY2LzNmYmxwVy8vN1pYejZwcVhJeGEzUHgrNFJTdUVNQ2N4V3cgTUtFd1VBcGprT3RqQk5iWEE4NmNpbmovMGd5LzhjRU03NzZWY09BTExMOXNlN25IK01tdEJYNXdaUjgvL09rK3JqOFlzTDJUc1RmVSBDRU1CV2h5VStZaUV2emFWWVVORG04L0lQWUNVeW9BMFR5SnNNTmkzNUVrRkJiVXdCamE0UjJJY1dDTWNXWTg0c1JseC9sekVoVGNTIDNqeVhjR0l6ZkdtaHgrN3cwZVU1UHJvOHgrNGU0OTVXeHJXN0MvejQxZ0pYN3l4dys4bUFyZWNGdS91TVFaT1NVR3Q5RTdkbzhjOXcgMnBEekYzLzloTlhxcFJnQ2lpS2dBS1hVR2RwOFRsZy9ISERzcXhFblRrU2NQaGx4K2xURTF6WWlqaDRoekdmL2U0Ry96UFpxbi9IMCBlY0hkcll3YkR4YjQ5TUdBbnowYWNHODdZK3Z6akJkN0JZdkNUVjZlRkd0TUwybVdlcUc1Q0ttRnVwOFp1UEIyd3UvOTdrRWNPeFp3IGREM2c0TUUyamZ5VmJBZm1oTE1iRVdjM0lqNitYTVBxL3NENGZKZXg5WG5HdmUyTXYvLytjL3p3K2g1Q3JQbEhuYldxOE53S1dGVUIgcGMwWDJtK1IvSjRZaUpFYkFlSlhKL2RyTngyZVh6c0k2cy9xR213RUNERG9iLy91Q1pmQzRFSVY5aXNhQU14bWhNT0hBNzc2bFlqTiB6WWhUSnlOT2ZpMWlZeVBpeURwaDl2L2tBbnZxQWs4eWJqd1ljUDNCZ0pzUEI5eDdtckgxUEdQbmxmQ0NINDdJclBTZ1BKRm1xUmVVIEM1QzFuNEVzaU1nRjJOOWo3TDdNZVBnb0kxOFZwYVNxbEkzakVXZlBSTHh4UHVIYzJZVE40d0ZyL3djUzlOdkxQY2I5cll4cmR3WjggY212QTFUc0Riajhlc1BWNXh1NCtJeGRKbGdsQ2hDNWdhZ1JnSjd5aWdJQTBTNHpTV1o4UkN0VmxLNnFaVk1uMW9ZV0FVSUFjVEVsNSBZR3h2Wnp4NWtuSGxhZzFQaHc0SG5Eb1JjZW5pRE8rL044UGJiNlF2cll5WGU0eXJOd2Y4K3lmNytJOXJDL3pzd1lEdG5ZSzlRZVlKIG9lSThvTDVUcTFtVDRwNFh2RTBLckRoSy8vRGR4OXhZWHhXUm5ZQzUzeStDa0p3clQrUnN4MG9oWkdZNVg1KzFkb0J3NldMQ04vL2cgRUM1ZFNMK1U4SjljWCtDZnZyZUxIMTFiNE5rdUl3Tm8zeDJCYTFodU5TaXJRSUdvNVFNR2VVT0N1Z0NSSFV1ekpJbU9XTDhVb0JBMSB5d2VxYmtBaU5PbURxTzdMZTgyL0pBc0w2amI3alAvODhRSVBIKzNnVC81b0hlKzhSZ2xYYmd6NG0rL3U0T2I5QVloMVRoSUJaSlpjIFJBb2xRU3ZPWWxXZEtVKytidkZLZ1BYMU44d1NZNWJRV29wQVNqSXpUSzVGOXh0bDBxUDl0czlJZ1JGSGJUNERIajNPK0pmdjcySnYgajFjSy8ycVA4Yy9mMjhYZGh4bnpWR2VTamRYYm9HdWFyaE9sZ0lCQVBzVkZ1MnA4WHZzUjFFcDdLWTFJVUMwMzluOGlnRElFam1iNSBySDFJWDF1eGNqb1ZBQW40OU1hQW16OGY4TjZsNVhPQ1QyOE4rTWxQRjVnRnFTTVFXcjIvVmNxa0dqWDlaSXVkQ293Rld0N25rTkRtIE54QUZjUE4zTXFKVEJZamdUUWx1UCtkZUdSMzV0TDdOekY3dE1hNWNXNnhVd0g5ZFdlRGxia0VNVm90a1NWcGE5UWtXMy8xYUJJUDYgb2tlYkRqbFVkRXFvK3lsRlMzNklEQWtxYVBGQ3cveWZuUDhUQkJsNmZpSmFWVUlvd1BVYkEvYjJlQklWWHUweHJueTZRSkFIMW1wVCBoVHNUQytSTnNOS212YVo5WC80bU9WNk5ac0lIdHgrcUMxZ1NSRXFDenVJbFU1c09xNlRORFJ3UmV1RnpKNXFidjBmZzRhTUJUN2NMIHpwenU2NEpQbmhiY2Y1aVJCUDRGdGFDaTYveHRzVVdlR1B6YWhKeXJnK1ltdUxHQlkzOVM2MWRscEJTZGxUVU5kakF2Vk5mYUtYTUggSFVWRTEyZ3NmTDlGTUhaM0dYZnZEeE1GM0w0NzRNVU9JMHF4TVlxQlc2Z0QyY29WeVlwVDIwZXpPRGRyUStxUTVOeFhGb0ZiSDBneCAxaVhpNG5LQm5PVjFSTWhLSUE0QjNyZGV2L1dzdjFnQVA3OHo0TGUrdnRZZHYzazdTOWl0c1Z5THI3ckdyS3RQSGxtVkY4Z0tSVzFRIEkraDNpaEFsQkNYQnlLMmlXeS9neHU1VVpOL0JuaFFSN29XKy80VVFRTTBpN3o4WXNGaHdtenZzTHhoMzdnM3QyYnJRMG56ZUxiZDUgdHlxNlI1WUpWdUY3QlRUSWh5a0tVb3dTVXgzOHN4QkdwaDdlSHZaVEQxK09pSEZKUFVYZzZkT0M1enVNNDhmcUhjK2ZNNTVzcWYreiByU2tLMDJ2WnJkWDEzTW8xblBBc1FrR0VWaTRJd1JEZy9UK29BZ0wzUE5BUTRDM2YrVHhqbFFQdzBuMnkxZFlJdk5ndDJON09PSDZzIDJuanJhY2JPaTRJWXF4UmNwQUJML1RLY3ByREJqQzFMNDcxQ2lNaGE2SDNlRUNCaE1NU2FCOEJCdXluQldiNUxjbHA2NWo5M1hZNEUgMXRHN0U4UEFlUFE0NDUyTE5SOTQ4RGhqc2FnMWgvcHhCYmxWWlMzVFdYNWI1RkdCUFB1YlAxQ1krbjRJdlFLTUJJTkFwMVQ0K1pSUyAvUXU2TENWRmhLWDJIbW1pclNVdWdVVE9OVFhXN2VIRDJnK0J3UEtOWU5EaUxJVG9XRyszMGJrdjdrMEpJOGF2S01DSS9Ra2hWRGxUIENEcUprQXpXVlZycnM2bkpSMDFCdk5UM3A1YUh4RE8zeE1hMTNMNzFOR01ZcWxTUHR6SWlhZnBMeGdIQjFpdjg0cXpHUGMzK21GemMgVnhjSXRKUUV2ZldKNUJzaGxwZEJrZTJSUG9INjZzbU1ubDNHQXg0SnFRRFBubVc4ZWxVSjd4ZWY1Y3JROGtGRFVYZ1g1d1p0M2JGUCBiWXV6ZUovNTlZS0dNQ1hCcWdDblpRTGFzbmNmVjkxbnJLOFIzbmU2cjB4YzNsTVNzUHV5WU9kRlFTbUUzUmVNRkFtNVZNdEh0WG9ZIEtVRmp2NlMwTExNNlQxeGVBVXVGRHFPNWdGZEFRZlc5T3FmblhnZjBPc0V0RDIrUUhTdENXZ0l3TEJpZmZWWnF6V0RCMWY4aEgxSVYgU1lqS0VpV1E1Z0RtQnJwRVJhS01WZGIzeHhSQjNiZkNqUThLbzdSdmM1YlplRG5oMWI3N0dGSHplSW5uN1ZzTUJvWU0vT3UvN1dMSSA5YTRvWmEwQXJwbWZJS0FVYWxhekNaRlpoYnRwNmlnRUN2dDdGRFJGQ0hDTUExd3JBUWhqK2g2UjRtb0ZtTWxabHRiWXdiOUJtNEU3IGR3Y01HWWloQ3F6Q2F4SlVpaG1sNXhGcUN4dnNJd0RJRWVDeUZOaHlDVlhHMHEvRjJ3ZlVTb3pMSEh4VklpU21idkZiUDMvMWZoMmwgSCt2QWh6ejk0cFRaZm9zdWxaT2xZUnJ2bW5zMkRoanh3R2hPMEdvQ29yTk9BUVJiRXdUWHdnaUNpRnhRRnlTZEdxYVdSN00yYTcrZCBxSDdiQlBVQ2o0UnZQQkFxRW9JZ3llZWhiWGFvOEJjdU1DSFJDejJxQ1dpRmFQb1BKdGl5c0JJWVFSWk9DVFZaQ2tGeFp4cGdyc3pkIExBOWhjbmV1UkNBeWd5TTE1YkI4bWxQMVRFNEI1Z1pjNnI0UGcyMTI2S0RQRGRvam9WdHVBSmN5dTZvd0tkZFIrK2xjb1FSREFnUUogMnVjbExYbzNFSmd6Y3p2ZWhJZDlhQkZabEQxU0FqdlVLSmxxUXNKTkNXcE5nejBtd3ZjMUFsVVVBS1I2d01XcC9sOCtMbGZDNU9NeiAwd0J6clJJM0ZEUWxtTzlydUEwQkNIRUtmM1dKd2hMdkMxVTBrRUhWd3FLaHR3bnZKa2k5U3pqT2tDMFJOTTJ4ZjJveTVqZFZncnFBIGloODBKMmVEYzNTS1lDbVZtN1VKSWFyRlJWSHN6b253SkM0WGxBQkJGZ0xGNUlVMEgzUXpRbWQ1TDd6Mm02S2FFZ2dKc0ZWVFhVZW4gc1MvSXJsYU8yaXF4L3N2dTBDdWhXVitRRUxpdUczQVVZVlVKRElSWUZSbWJkOG1udGlSaGtDWGZMMzVLckZXaTZYVFl3NXVhZTVqbCB2ZkRWQlp5RTdhTnBRWUkrcU9tRGpYU0Q0NEhBbUV4Y1dPb01IZFM1Wm56K21BcERnZ0xTU0ZGcUVsTkRvS1N2YkJPbEltZ3dyekJmIHNOQm9JYTlIdm1Vei93TWJqc0ZEV1VNVFVnQUFBQ1YwUlZoMFpHRjBaVHBqY21WaGRHVUFNakF5TlMwd055MHhOMVF3TnpveE9Ub3cgTkNzd01Eb3dNTVBUL3c0QUFBQWxkRVZZZEdSaGRHVTZiVzlrYVdaNUFESXdNalV0TURjdE1UZFVNRGM2TVRrNk1EWXJNREE2TURBbCBFVmFiQUFBQUtIUkZXSFJrWVhSbE9uUnBiV1Z6ZEdGdGNBQXlNREkxTFRBM0xURTNWREEzT2pFNU9qQTRLekF3T2pBd0lqc01HUUFBIEFBQkpSVTVFcmtKZ2dnPT0iLz4KICAgIDxzY3JpcHQgeG1sbnM9IiIvPjwvc3ZnPgo=";var j="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI3MHB4IiBoZWlnaHQ9IjcwcHgiIHZpZXdCb3g9IjAgMCA3MCA3MCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNzAgNzAiIHhtbDpzcGFjZT0icHJlc2VydmUiPiAgPGltYWdlIGlkPSJpbWFnZTAiIHdpZHRoPSI3MCIgaGVpZ2h0PSI3MCIgeD0iMCIgeT0iMCIKICAgIHhsaW5rOmhyZWY9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRVlBQUFCR0NBTUFBQUJHOEJLMkFBQUFJR05JVWswQUFIb21BQUNBaEFBQStnQUFBSURvCkFBQjFNQUFBNm1BQUFEcVlBQUFYY0p5NlVUd0FBQUlyVUV4VVJRQUFBRE01UURZelB6YzVQemM0UHpnNFB6YzVQemM1UGpjM1BUbzYKT2pjM1BqZzRQemc0UGpnNVBqYzRQalk0UHdBQUFEWTVQRGM1UHpnNVB6ZzRQemMzUGdBQUFEYzRQemM1UHpnNFBqZzRQamc0UGpZNQpQalUxUURnNFBqYzRQamMzUFRNek16ZzRQemM1UGpjM056ZzRQamM0UHpNek16azVPVGc0UGpFeFBUVTFQRGM0UHpnNFB6TTZPaXNyClFEZzVQeVFrSkRjNVBqYzVQamc0UGpVNVBUYzVQemM0UHpjM056WTVQUzR1TGpnNFB6YzNQVGM0UGpnNFBEYzNRRGc0UGprNU9UYzQKUGpjNFB6WTJOamM1UFRjNVBnQUFBRGc0UGpjNFB6VTFRRGc0UFRnNFBqYzRQemczUHpjNVB6YzRQemc1UHpnNVB6WTRQalk1UFRjMwpRRGM0UGpjNFBqTXpRRGc1UVRFN096YzVQamM0UGpjM1B6YzNQelkyUGpjNVBqWTVQemc1UHpnN1B6bzVQenBGUlVGeVhFZVdiVTI1CmZVN0VnMUxiamxiem1qazVQejVjVUVtaGNsRFFpVVdLWjFUbmxFTi9ZVlR6bWtpaWNrT0FZVDlvVmp4UlNreTZmVUp6V3pnNVBrL0UKZzFQbmxFZVdiRHBGUkZieG1sYnlta3FzZUVxc2VrV0xaamc1UFQ5blZVeTVmRS9QaVVxc2R6OW5Wa0JtVkRsRlJWYnptRkRQaVZYegptbFBvbEZYeW1WYjBtbGZ6bWxMY2owN0ZoRGc0UDFiem1WWHhta3V0ZDFUcWxWUG5renhRU2oxY1VGRFFpRUJ4V2xMY2pqdEZSVmJ6Cm0xYm5sRDltVlVGelcwTitZRXV4ZVZYem1VaWhjbFgybWxmeW1reS9mMHFvZFU3RmcwZWRiMVh4bVV5NWZVU0xaams1UFVPQllVN0YKaGpoRlJVaWpjanhUU3YvLy83RUhOa0FBQUFCaWRGSk9Vd0FvVlhtZXY5VG1WQlp6dHU3dXRYRURUSy83cmtvQzBNOVNXOVphR0ttbwpUd1dXbEE3QXZnOGIwaFVpNDlzakROTUh2WkJPUSsvbkYxQUw1RmpJUURpZ0V2WDBFM0N3QWUzc01HQ0F6T0RZNlBqZ2lHdzgyZG9VCjB4cmQvb3BGUW5SVjh2M2czd0FBQUFGaVMwZEV1RTIvSnZZQUFBQUhkRWxOUlFmcEJSOE1PUU9qa2cwM0FBQUYwa2xFUVZSWXc1VlkKaTE4VVJSeGZVaEV5ekZSQU0wWHlsV1pwbUpXbTVoTVVyS0MwU0N0cmp1VWV3OTJ4NSszdEhlMkdkQ0Q0Q0lNN2lFUXplcjhzZS85Nwp6VzhldTNOMyt6aStIejR3N014KzkvZWUzNHlpZUtQbW9TVkxsOVV1UjJoNTdiS2xTK3BxbE1Xai91RVZqNkF5Tkt4OHRINHhIS3NlClc3Mkd2UmtxWTFxenRuRlZsU1JOZGMzd1JoOVMrOE9SYUF3VHhLS1JjTDg2UUpuV3JXK3FodVR4RFhSMVBKSEVaVWdtNG5ScXd4T0IKUkJzM3dVSjFNSVpkRVJ0VVliNWxvei9MNWdZZ0NXdllFMW9ZaUJvMis1QzBQZ21mU21uNE10Y2lyV2NNZUdSazlMU3RvNVpDYUFCdAphZlZpMmJvTjNvankxZGtjbFI4TkNTK3B1U3lmK2dpNHQrOXdaM21xbGt6bW1ENm05VEY4a25uTWdXcVpNRHVzNWNnL08zZTVzVHk5Cm0wd2w4QlZLb2lJUGNDS2NJT05ubnExazJiT1hUSXd3ZFF6a0E0T3A5Z2taN3QxVHp2SmNHM2tjb1F2eUtBQjV1aXhDUm0zbEliMlAKMkpMS1lzYkY2cEFuVDV3cU5rSkcrMHBabmllUDB0VEhUS0VCZjNrTTZ2MDBHZTJYV2VwZklENmlMTnkyb3dGNnFaU0grT3ZGbHlTYQpGdklCOExUcGExeW1KdnVDQVhwcFpIbUx3M0tBUEtkUkYwZFZJdzdybzJSd1FMQWNmQmtoWGZaUmZJeENpTlpYOWxmeWw0N1E3b09jCjVoRFJGVlRLRWxsVGlhaWNsMUJuaElpcHErUGpFOWNjLzBIOGFNU1doempOWVlRc01NeDFyL0lRRFkraEcrTmtjQlBqaVJ2Q1ROUTgKRmtLSEdjdVJJU2JNcDlnSGs3ZkVhS0pQWkt2RnhYbUYwaHhsZW40MmhmRTBXMWtvVWhUY0dhL1pYamVaUFk4Q3k3SGphQWFVbWFWcgppbFpHY3JxYTBTM0c5cmxETTJkUGd6Z3hoRTZjSkRTblF1QzhtNWdJVTlCZE05dlE1MlRCeHAydjhDQTVSV2phV1JvTVk5TXZKeVdhCkx6SWx6aUlwMGE0b0hhY1JTcGJtcEJ0dVM5YkdFYUUzSkZBU29UTWRTaWVYYmNxL1BzelpMTU9UVU5jbHJZZ2hPcFV1eGptTC9kTnAKM2hhSHVZSlhnaVJMMEM3bExEUDRiRkErM2VFOGQ3OWs1dFowZUpwbUVYZ1draHNNTllWMThjS01oenh6aE9pZTlSV0pNcWNjNTFrQQp0Q2hrdnk2UzhRSUVRTFZRaTVpWHZ3eUVHa0t2S3E4aEZLUFNCTmRnQjMxNXptTXdWNzJ1ZE5zeG9TMmkydGpsR0g0ajFLMzBNQnA0CityVzZDQjVXam5YWXB4SHFFVFE2cEdYU1dBUVBUVXlOU2RNamxBck5TWHJOZnpQUDF6cEZxbkt2WUhweHBkNUFDQUxCNEhFNmlOQzMKWVBMWWQ4SHk1S2xuY0FGTTNEeEFIWjRSOFI3OW5uL2pxajhIUkZlQnhBbDNlRHNMUHdpK05Oam5CenQ1Zmd3RmlhUGpuMFQ0dmNtUwpJVTBmbXpJTm5nK1NKbzUvRnNuUVphYzc5ZUtrVkZoU3BVWXVOenBaVG9yR0Frdk5UaWZkQWI4SWptbjZHZi9kM0pxeUMwWEhHVHZkCkFTbEptbDhEVEJPblVaTkVRNmM3N0NLYVpWUHpFczFzTE9HWEg0TnNYMlJGVkRuSDkyT3UxWDJwV0VMOGpLVHMwSmIxVTFNeEZqVlEKcDg0Um1wTW5XQUJhYlA3TzdSSWFHdHZSY0dwTXlqZGpMQnkxQ3lFSnZ1UEh4SFkzelBZL3luT1BMcm4xV3hhWFFvdFNPQnYwMU8vWQoyZTZVOHp6TkxQRzExSVA3RC80Z1c3V3FDNllGN0lhN1VCblVVWFMrcEJYUTNQSTdZeFh0MTZabGptVCt1b2JsVm9BMkppQk9wSlRoClR4Rnc4WnlWTFVvTVpqR3RHNnh2TmFYR1JIbkxhWk5HNFdlb1Vxb2hPRGhRaUJpZ2RmUXZoTjR1YWRyK1pzNExhRUdsMk1Nc3VaMm0KamJXUXBwZDVYQUVkNTRKWjJrSXF2ZDFsRFcwUS9rbGVaZ25VM1NzM3h2dERVbnM5NC9NK2IyZHBQZitYakk1VU5QdklMc2REQWJLdwpuSVIycWF6WlY1UTJJa1ZXbEdNL1NVaE9Zc0hTVm5rUWVrZkk0N1F2THVoRFJzUm1xVHdJS2NxRmk0amJoeDlMWFZuRWNSYUs3c1VMCmJzZTdYVHVKMURuVGowaVFtRkRrYW5zVlYrellEazRRWVIvcEwyTlMreU44cWdoYWI5dXFlS0IxQ3l6WHhXNklrNGxCZG5ENGIyelEKdVNRd1lUTjY5ejNQQTdRaWp2T1dUVlFKZHB4dGVGL3h4Y1lXS24vZW8wTXY1S21tbXdJdUZ3Z3UxYklRUzFkZWRhUlpkdGRlQ2lRaAphRnEvanRzVTZnd1ZxMURNV3Z5U0FEWFhWWFB4UXRHNDFpdjhWamRXeTBGUi84SEtCaEczQWcwckZuY3B4VkZUSjErUmZlaDNSZlkvCktlY2ZTdEhQWDVRQUFBQWxkRVZZZEdSaGRHVTZZM0psWVhSbEFESXdNalV0TURVdE16RlVNVEk2TlRjNk1ETXJNREE2TUREYlhTOEcKQUFBQUpYUkZXSFJrWVhSbE9tMXZaR2xtZVFBeU1ESTFMVEExTFRNeFZERXlPalUzT2pBekt6QXdPakF3cWdDWHVnQUFBQ2gwUlZoMApaR0YwWlRwMGFXMWxjM1JoYlhBQU1qQXlOUzB3TlMwek1WUXhNam8xTnpvd015c3dNRG93TVAwVnRtVUFBQUFBU1VWT1JLNUNZSUk9IiAvPgo8L3N2Zz4K";var I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODAwIiBoZWlnaHQ9IjgwMCIgdmlld0JveD0iMCAwIDgwMCA4MDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI4MDAiIGhlaWdodD0iODAwIiByeD0iNDAwIiBmaWxsPSIjRTYwMDdBIi8+CjxwYXRoIGQ9Ik00MDAuMDcyIDI0Ni4wMzhDNDUyLjY2NiAyNDYuMDM4IDQ5NS4zMDIgMjIxLjE4MSA0OTUuMzAyIDE5MC41MTlDNDk1LjMwMiAxNTkuODU3IDQ1Mi42NjYgMTM1IDQwMC4wNzIgMTM1QzM0Ny40NzggMTM1IDMwNC44NDMgMTU5Ljg1NyAzMDQuODQzIDE5MC41MTlDMzA0Ljg0MyAyMjEuMTgxIDM0Ny40NzggMjQ2LjAzOCA0MDAuMDcyIDI0Ni4wMzhaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNDAwLjA3MiA2NjQuMzY0QzQ1Mi42NjYgNjY0LjM2NCA0OTUuMzAyIDYzOS41MDcgNDk1LjMwMiA2MDguODQ1QzQ5NS4zMDIgNTc4LjE4MyA0NTIuNjY2IDU1My4zMjYgNDAwLjA3MiA1NTMuMzI2QzM0Ny40NzggNTUzLjMyNiAzMDQuODQzIDU3OC4xODMgMzA0Ljg0MyA2MDguODQ1QzMwNC44NDMgNjM5LjUwNyAzNDcuNDc4IDY2NC4zNjQgNDAwLjA3MiA2NjQuMzY0WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTI2Ny4zNjMgMzIyLjg5QzI5My42NiAyNzcuMjMzIDI5My40ODkgMjI3Ljc4NSAyNjYuOTgyIDIxMi40NDNDMjQwLjQ3NSAxOTcuMTAyIDE5Ny42NjggMjIxLjY3NyAxNzEuMzcxIDI2Ny4zMzNDMTQ1LjA3NCAzMTIuOTg5IDE0NS4yNDUgMzYyLjQzOCAxNzEuNzUzIDM3Ny43NzlDMTk4LjI2IDM5My4xMjEgMjQxLjA2NiAzNjguNTQ2IDI2Ny4zNjMgMzIyLjg5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTYyOC43MzEgNTMyLjAyN0M2NTUuMDI4IDQ4Ni4zNzEgNjU0Ljg3MiA0MzYuOTMxIDYyOC4zODIgNDIxLjZDNjAxLjg5MyA0MDYuMjY5IDU1OS4xMDEgNDMwLjg1MiA1MzIuODA0IDQ3Ni41MDhDNTA2LjUwNyA1MjIuMTY1IDUwNi42NjMgNTcxLjYwNSA1MzMuMTUzIDU4Ni45MzZDNTU5LjY0MyA2MDIuMjY3IDYwMi40MzQgNTc3LjY4NCA2MjguNzMxIDUzMi4wMjdaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMjY2Ljk5NiA1ODYuOTIzQzI5My41MDMgNTcxLjU4MiAyOTMuNjc0IDUyMi4xMzMgMjY3LjM3NyA0NzYuNDc3QzI0MS4wOCA0MzAuODIxIDE5OC4yNzQgNDA2LjI0NiAxNzEuNzY2IDQyMS41ODdDMTQ1LjI1OSA0MzYuOTI5IDE0NS4wODggNDg2LjM3NyAxNzEuMzg1IDUzMi4wMzRDMTk3LjY4MiA1NzcuNjkgMjQwLjQ4OCA2MDIuMjY1IDI2Ni45OTYgNTg2LjkyM1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik02MjguNDA1IDM3Ny43OTJDNjU0Ljg5NCAzNjIuNDYxIDY1NS4wNTEgMzEzLjAyIDYyOC43NTQgMjY3LjM2NEM2MDIuNDU3IDIyMS43MDggNTU5LjY2NSAxOTcuMTI0IDUzMy4xNzUgMjEyLjQ1NUM1MDYuNjg2IDIyNy43ODcgNTA2LjUzIDI3Ny4yMjcgNTMyLjgyNyAzMjIuODgzQzU1OS4xMjQgMzY4LjUzOSA2MDEuOTE1IDM5My4xMjMgNjI4LjQwNSAzNzcuNzkyWiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==";var T="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiCiAgICAgeT0iMHB4IiB2aWV3Qm94PSIxNSAxNSAxNDAgMTQwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNzAgMTcwO3pvb206IDE7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c2NyaXB0IHhtbG5zPSIiLz4KICAgIDxzY3JpcHQgeG1sbnM9IiIgaWQ9ImFyZ2VudC14LWV4dGVuc2lvbiIgZGF0YS1leHRlbnNpb24taWQ9ImRsY29icGppaWdwaWtvb2JvaG1hYmVoaG1oZm9vZGJiIi8+CiAgICA8U0NSSVBUIHhtbG5zPSIiIGlkPSJhbGxvdy1jb3B5X3NjcmlwdCIvPgogICAgPHNjcmlwdCB4bWxucz0iIi8+CiAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogIC5iZzB7ZmlsbDojRkY4QzAwfQogICAgICAgIC5zdDB7ZmlsbDojRkZGRkZGO30KPC9zdHlsZT4KICAgIDxnPjxjaXJjbGUgY2xhc3M9ImJnMCIgY3g9Ijg1IiBjeT0iODUiIHI9IjcwIi8+CiAgICAgICAgPGc+PHBhdGggY2xhc3M9InN0MCIgZD0iTTg1LDM0LjdjLTIwLjgsMC0zNy44LDE2LjktMzcuOCwzNy44YzAsNC4yLDAuNyw4LjMsMiwxMi4zYzAuOSwyLjcsMy45LDQuMiw2LjcsMy4zYzIuNy0wLjksNC4yLTMuOSwzLjMtNi43IGMtMS4xLTMuMS0xLjYtNi40LTEuNS05LjdDNTguMSw1Ny42LDY5LjUsNDYsODMuNiw0NS4zYzE1LjctMC44LDI4LjcsMTEuNywyOC43LDI3LjJjMCwxNC41LTExLjQsMjYuNC0yNS43LDI3LjIgYzAsMC01LjMsMC4zLTcuOSwwLjdjLTEuMywwLjItMi4zLDAuNC0zLDAuNWMtMC4zLDAuMS0wLjYtMC4yLTAuNS0wLjVsMC45LTQuNEw4MSw3My40YzAuNi0yLjgtMS4yLTUuNi00LTYuMiBjLTIuOC0wLjYtNS42LDEuMi02LjIsNGMwLDAtMTEuOCw1NS0xMS45LDU1LjZjLTAuNiwyLjgsMS4yLDUuNiw0LDYuMmMyLjgsMC42LDUuNi0xLjIsNi4yLTRjMC4xLTAuNiwxLjctNy45LDEuNy03LjkgYzEuMi01LjYsNS44LTkuNywxMS4yLTEwLjRjMS4yLTAuMiw1LjktMC41LDUuOS0wLjVjMTkuNS0xLjUsMzQuOS0xNy44LDM0LjktMzcuN0MxMjIuOCw1MS42LDEwNS44LDM0LjcsODUsMzQuN3ogTTg3LjcsMTIxLjcgYy0zLjQtMC43LTYuOCwxLjQtNy41LDQuOWMtMC43LDMuNCwxLjQsNi44LDQuOSw3LjVjMy40LDAuNyw2LjgtMS40LDcuNS00LjlDOTMuMywxMjUuNyw5MS4yLDEyMi40LDg3LjcsMTIxLjd6Ii8+PC9nPjwvZz4KICAgIDxzY3JpcHQgeG1sbnM9IiIvPjwvc3ZnPgo=";var D="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij4KICAgIDxkZWZzPgogICAgICAgIDxzdHlsZT4uY2xzLTF7ZmlsbDojZmZmO30uY2xzLTJ7ZmlsbDojZTMwYjdiO308L3N0eWxlPgogICAgPC9kZWZzPgogICAgPGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSI2NCIgY3k9IjY0IiByPSI2NCIvPgogICAgPHBhdGggY2xhc3M9ImNscy0yIgogICAgICAgICAgZD0iTTEwNi4zNCwyOC42N2EyNy40NCwyNy40NCwwLDAsMC04LjItNC43OCw0Niw0NiwwLDAsMC0xNS42MS0yLjgyLDc2LDc2LDAsMCwwLTIyLjQ4LDMuMSw1NSw1NSwwLDAsMC05LjgsMy41bC0uMTYuMDdBNjIuNSw2Mi41LDAsMCwxLDYzLjU2LDI2LjUsMzkuNTksMzkuNTksMCwwLDEsNzcsMjguOTNhMjMuNjcsMjMuNjcsMCwwLDEsNy4wNyw0LjEyLDE3LjA1LDE3LjA1LDAsMCwxLDYuMTcsMTMuNDNBMjYuNDMsMjYuNDMsMCwwLDEsODYuODMsNTksNTEuMDgsNTEuMDgsMCwwLDEsNzUuMDcsNzMuNDJhNzguODksNzguODksMCwwLDEtMjIuOTEsMTRBNzMuMTEsNzMuMTEsMCwwLDEsMjcuNjMsOTIuOWE0NC42Myw0NC42MywwLDAsMS0xMy4xNC0xLjI1LDI5LjQxLDI5LjQxLDAsMCwwLDguODIsNC40LDUwLjU5LDUwLjU5LDAsMCwwLDE3LjUxLDIuMSw4NC43NSw4NC43NSwwLDAsMCwyOC40Ny02LjRBOTEuNzIsOTEuNzIsMCwwLDAsOTUuODgsNzUuNTRhNTkuMjYsNTkuMjYsMCwwLDAsMTMuNjYtMTYuNzYsMzAuODEsMzAuODEsMCwwLDAsNC0xNC41MkExOS43OSwxOS43OSwwLDAsMCwxMDYuMzQsMjguNjdaIgogICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwKSIvPgogICAgPHBhdGggZD0iTTY1LjU2LDgwLjU0YzEtLjY2LDItMS4zNCwzLTItMS42OS0uNC0zLjQ0LS44Ni01LTEuMzMtNC43Ni0xLjQ3LTMuMTctNy44Mi0yLTkuMzhhNjguNzIsNjguNzIsMCwwLDAsNy4xNC0xMy40YzEuNDktNC4xLjE5LTkuMjItLjQ5LTExLjM2LS4xMi0uMzMtLjI0LS42Ny0uMzQtMWwtMS44NC01LjU2YTE5LjU2LDE5LjU2LDAsMCwwLTIuNTMtNC42Nyw3LjU4LDcuNTgsMCwwLDAtNi0zLjE0LDE2LjIyLDE2LjIyLDAsMCwwLTMuNzQuMzNjLTIsLjMyLTQsLjY4LTYsMWExLDEsMCwwLDEtLjIxLDBjLjQ4LjYxLjksMS4xNCwxLjMsMS42Ny41OS44LDEuMTcsMS42MiwxLjc3LDIuNDJBOC42Myw4LjYzLDAsMCwxLDUyLjM0LDM5YTE3LjQ5LDE3LjQ5LDAsMCwxLS4yNCwzLjMyLDcwLjMxLDcwLjMxLDAsMCwwLTUuNDUsOC44OUwzMS43NCw4MC42MmExLjM0LDEuMzQsMCwwLDAtLjA3LjE4bC4wNi4wNiw1LTMsLjA2LjA3UTI4Ljc2LDkwLjgsMjAuNzEsMTAzLjY3bC4wNSwwTDIzLDEwMi40Yy0uNjMsMS41NC0xLjIyLDMtMS44NCw0LjU0QTkuNDksOS40OSwwLDAsMCwyNCwxMDUuNGE3LjgyLDcuODIsMCwwLDAsMi4xLTIuNDlsLjQyLjcxLjI5LS4zNWMzLjczLTQuNzMsNy41OS05LjM2LDExLjYzLTEzLjg0YTEwNy4yNSwxMDcuMjUsMCwwLDEsOS43Ny05Ljc3QTIzLjM2LDIzLjM2LDAsMCwxLDUzLDc2LjM1YTUuNCw1LjQsMCwwLDEsMi0uNTlsLTIuNTksMi43OSwwLDBjMS44OC0xLDIuMTUtLjMxLDQtMS4yN2wuMjEuMjJjMS42MiwxLjkyLDUuMjcsMi42LDcuNzcsMi44MkE3LjUzLDcuNTMsMCwwLDEsNjUuNTYsODAuNTRaIgogICAgICAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwKSIvPgo8L3N2Zz4K";var g="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzA0IiBoZWlnaHQ9IjcwNCIgdmlld0JveD0iMCAwIDcwNCA3MDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfMzYyXzgwMTcpIj4KICAgICAgICA8bWFzayBpZD0ibWFzazBfMzYyXzgwMTciIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSI3MDQiCiAgICAgICAgICAgICAgaGVpZ2h0PSI3MDQiPgogICAgICAgICAgICA8cmVjdCB3aWR0aD0iNzA0IiBoZWlnaHQ9IjcwNCIgcng9IjQ4IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMzYyXzgwMTcpIi8+CiAgICAgICAgPC9tYXNrPgogICAgICAgIDxnIG1hc2s9InVybCgjbWFzazBfMzYyXzgwMTcpIj4KICAgICAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAxXzM2Ml84MDE3KSI+CiAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD0iMTg0Ny4wOSIgaGVpZ2h0PSIxMjYwLjc5IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNTI5IDE3Ni45MzcpIHJvdGF0ZSgtMjMuMjgpIgogICAgICAgICAgICAgICAgICAgICAgZmlsbD0iIzBDMEMwQyIvPgogICAgICAgICAgICAgICAgPGcgb3BhY2l0eT0iMC41IiBmaWx0ZXI9InVybCgjZmlsdGVyMF9mXzM2Ml84MDE3KSI+CiAgICAgICAgICAgICAgICAgICAgPGVsbGlwc2UgY3g9IjI5MC40NjQiIGN5PSIyMjQuNzUxIiByeD0iMjkwLjQ2NCIgcnk9IjIyNC43NTEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC41NzEyMzggMC44MjA3ODUgMC43MjIxOTEgLTAuNjkxNjk0IC03MS45NDk3IDY1MS4wMjEpIiBmaWxsPSIjNzMxMTQwIi8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyBvcGFjaXR5PSIwLjciIGZpbHRlcj0idXJsKCNmaWx0ZXIxX2ZfMzYyXzgwMTcpIj4KICAgICAgICAgICAgICAgICAgICA8ZWxsaXBzZSBjeD0iMzIxLjY2NSIgY3k9IjMwNi44MjEiIHJ4PSIzMjEuNjY1IiByeT0iMzA2LjgyMSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjgwMjIyOCAtMC41OTcwMTggLTAuNTEwNDgzIC0wLjg1OTg4OCAtMjQ2LjQ3MiAxMzQ2LjM5KSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSIjMDA0QkZGIi8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICA8ZyBvcGFjaXR5PSIwLjciIGZpbHRlcj0idXJsKCNmaWx0ZXIyX2ZfMzYyXzgwMTcpIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOTk5LjU1NiAtMTkzLjU4MkM4NTUuMTkgLTE2NS4yNzkgNzgyLjM5MyAtMjg5LjM2NSA2NjYuMTMyIC0xOTYuNzNDMzk2Ljk4IDE3LjcyNTUgODA2LjAxNiA1NzAuMjU0IDExNTAuMzEgNjE0LjgyNEMxMzU3LjQ3IDY0MS42NDEgMTM4OC40NyA2ODcuNDQ0IDE1MTYuMTQgNTE4LjUyNUMxNjQwLjcxIDM1My43MjEgMTY3MC4yNCAyNTAuNDU5IDE2NzcuMzYgMjkuMzkwNUMxNjc5Ljk1IC01MC45ODcgMTY2MS42NyAtMTg5LjkyNSAxNjAwLjcyIC0yNjQuODM5QzE1MzEuMjEgLTM1MC4yNzkgMTQ0My40NyAtMzYxLjQ0MiAxMzQ3LjE4IC0zMzYuNzkyQzEyNDguMDUgLTMxMS40MTYgMTE3OC43MiAtMjI4LjcwOCA5OTkuNTU2IC0xOTMuNTgyWiIKICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPSIjMUU5Qjc2Ii8+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAyXzM2Ml84MDE3KSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik01MTIgMzAxLjU5OVYyMzQuOTlMMjQ1LjI4NiAxMjhMMTkyIDE1NS4wNkwxOTIuMjgxIDM2Mi4zOEwzOTEuODI0IDQ0Mi43MjdMMjg1LjI1MSA0ODguMTA0VjQ1My4wMTNMMjM2LjMyNCA0MzMuMTUyTDE5Mi4yODEgNDUzLjk2N0wxOTIuMjgxIDU4MC45NEwyNDUuMzMzIDYwOEw1MTIgNDg3LjY4OFY0MDIuMzQ1TDI3MiAzMDYuMjgzVjI0OEw0NjIuNDE3IDMyNC4wOEw1MTIgMzAxLjU5OVoiCiAgICAgICAgICAgICAgICAgIGZpbGw9IndoaXRlIi8+CiAgICAgICAgPC9nPgogICAgPC9nPgogICAgPGRlZnM+CiAgICAgICAgPGZpbHRlciBpZD0iZmlsdGVyMF9mXzM2Ml84MDE3IiB4PSItMjc1LjgyNSIgeT0iMTQ5LjMyMiIgd2lkdGg9IjEwNjQuMjMiIGhlaWdodD0iMTE2OS4zIgogICAgICAgICAgICAgICAgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgogICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgogICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJzaGFwZSIvPgogICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxNTAiIHJlc3VsdD0iZWZmZWN0MV9mb3JlZ3JvdW5kQmx1cl8zNjJfODAxNyIvPgogICAgICAgIDwvZmlsdGVyPgogICAgICAgIDxmaWx0ZXIgaWQ9ImZpbHRlcjFfZl8zNjJfODAxNyIgeD0iLTc0Ni45NTciIHk9IjI2NC4xNjciIHdpZHRoPSIxMjAzLjgxIiBoZWlnaHQ9IjEyNTIuNjkiCiAgICAgICAgICAgICAgICBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CiAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CiAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIi8+CiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjE1MCIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzM2Ml84MDE3Ii8+CiAgICAgICAgPC9maWx0ZXI+CiAgICAgICAgPGZpbHRlciBpZD0iZmlsdGVyMl9mXzM2Ml84MDE3IiB4PSItMjEuMDExNyIgeT0iLTk0OC4yNzEiIHdpZHRoPSIyMjk4LjYxIiBoZWlnaHQ9IjIxODkuNjQiCiAgICAgICAgICAgICAgICBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CiAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CiAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9InNoYXBlIi8+CiAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwMCIgcmVzdWx0PSJlZmZlY3QxX2ZvcmVncm91bmRCbHVyXzM2Ml84MDE3Ii8+CiAgICAgICAgPC9maWx0ZXI+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzM2Ml84MDE3IiB4MT0iMzUyIiB5MT0iMCIgeDI9IjM1MiIgeTI9IjcwNCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMDA0QkZGIi8+CiAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzRDRUFBQyIvPgogICAgICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJjbGlwMF8zNjJfODAxNyI+CiAgICAgICAgICAgIDxyZWN0IHdpZHRoPSI3MDQiIGhlaWdodD0iNzA0IiByeD0iMTYiIGZpbGw9IndoaXRlIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgICAgICA8Y2xpcFBhdGggaWQ9ImNsaXAxXzM2Ml84MDE3Ij4KICAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjE4NDcuMDkiIGhlaWdodD0iMTI2MC43OSIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01MjkgMTc2LjkzNykgcm90YXRlKC0yMy4yOCkiLz4KICAgICAgICA8L2NsaXBQYXRoPgogICAgICAgIDxjbGlwUGF0aCBpZD0iY2xpcDJfMzYyXzgwMTciPgogICAgICAgICAgICA8cmVjdCB3aWR0aD0iMzIwIiBoZWlnaHQ9IjQ4MCIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE5MiAxMjgpIi8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgIDwvZGVmcz4KPC9zdmc+Cg==";var L="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4IiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+CiAgICA8cGF0aCBmaWxsPSIjZGRmZTc2IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDcwLjI1YzAgMjEuMjU1IDAgMzEuODgzIDQuNDYzIDM5Ljg1MmEzNSAzNSAwIDAgMCAxMy40MzUgMTMuNDM1QzI1Ljg2NyAxMjggMzYuNDk1IDEyOCA1Ny43NSAxMjhoMTIuNWMyMS4yNTUgMCAzMS44ODMgMCAzOS44NTItNC40NjNhMzUgMzUgMCAwIDAgMTMuNDM1LTEzLjQzNUMxMjggMTAyLjEzMyAxMjggOTEuNTA1IDEyOCA3MC4yNXYtMTIuNWMwLTIxLjI1NSAwLTMxLjg4My00LjQ2My0zOS44NTJhMzUgMzUgMCAwIDAtMTMuNDM1LTEzLjQzNUMxMDIuMTMzIDAgOTEuNTA1IDAgNzAuMjUgMGgtMTIuNUMzNi40OTUgMCAyNS44NjcgMCAxNy44OTggNC40NjNBMzUgMzUgMCAwIDAgNC40NjMgMTcuODk4QzAgMjUuODY3IDAgMzYuNDk1IDAgNTcuNzVaIi8+CiAgICA8cGF0aCBmaWxsPSIjZWE1NzUwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Im0zMy44NzkgMzUuMTE3LS41IDE5LjE2NWM4LjEwNyA0LjE2OCAxNS43NSA0LjA3NSAyNC43NCAyLjA2MyAzLjU2LTEuMzk3IDYuMDU2LTEuNzAyIDkuNTExIDAgOS4wNjcgMi44MTYgMTYuOTY5IDEuOTUgMjUuMTg1LTIuMjQzbC0uNDg1LTE5LjE4N2MwLTEwLjgwNS03LjAwNC0xNC45NjItMTQuNjMyLTEyLjczOS0uNzc5LjIzMi0xLjk0NCAxLjI3NC0xLjk0NCAyLjIwN2wtLjE4MSAxOC43MzNhMS43NyAxLjc3IDAgMSAxLTMuNTM4LS4wMTVWMjAuMDY3YTguODM4IDguODM4IDAgMCAwLTE3LjY3NSAwVjQzLjFhMS43NyAxLjc3IDAgMSAxLTMuNTM4LjAxNWwtLjE3Ni0xOC43NDNjMC0uOTIzLTEuMTA5LTEuOTYtMS44ODItMi4xOTItOC44LTIuNjEtMTQuODggMi41MzgtMTQuODggMTIuOTM2Wm0yLjQ3NSAyMy44NDNhNDguNDMgNDguNDMgMCAwIDEtNS4yMDktMi4yNTRjLTQuNzMtMi4yNjktMTIuMDk1LTEuNTYyLTE3LjA3MiA0LjExMS0yLjI3NCAyLjYtLjUxNSA2LjM2IDIuNzcgNy40NDggMS41ODMuNTI2IDMuMDE3IDEuNDEzIDQuMzUzIDIuNDA4bC40NjQuMzM2YzQuMTMyIDIuOTY1IDYuNzkzIDcuNDA2IDcuMDU2IDEyLjQ4NmwuMjUzIDQuODEyYTMxLjYxNiAzMS42MTYgMCAwIDAgMTkuNDI4IDI1Ljk1OSAzOC41OSAzOC41OSAwIDAgMCAyOS4zMjcgMCAzMS42MTYgMzEuNjE2IDAgMCAwIDE5LjQyOS0yNS45NTljLjA0Ni0uODI1LjA2MS0xLjY1LjA1MS0yLjQ2NWwuMTI0LTIuMzQ3Yy4yNjMtNS4wOCAyLjkyNC05LjUyIDcuMDU2LTEyLjQ4NmwuNDY0LS4zMzZjMS4zNC0uOTk1IDIuNzctMS44ODIgNC4zNTMtMi40MDggMy4yODUtMS4wODkgNS4wNS00Ljg0OSAyLjc3LTcuNDQ4LTQuOTc4LTUuNjczLTEyLjM0My02LjM3NS0xNy4wNzItNC4xMS0xLjcxOC44MjUtMy40MzUgMS42NS01LjIxIDIuMjUzbC0zLjYyIDEuMjM4LS4wMS4wNDFjLTYuNjU0IDEuODQyLTEyLjEyIDEuODQ3LTE4LjM5OC0uNzQyLTMuMTc3LTEuMzEtNi4zOC0xLjU1OC05LjQ4IDAtNS45NjcgMS44NTYtMTIuMDQ4IDIuNjQtMTguMjA2LjcwMWwtMy42MjYtMS4yMzhabTI2LjY2NSA0NC43MzJjMTMuMzkgMCAyNC4yNDEtMTUuNTk2IDI0LjI0MS0xNS41OTZTNzYuNDEgNzIuNDk5IDYzLjAyIDcyLjQ5OWMtMTMuMzg1IDAtMjQuMjM2IDE1LjU5Ny0yNC4yMzYgMTUuNTk3czEwLjg1MSAxNS41OTYgMjQuMjQgMTUuNTk2Wm0xMC44ODMtMTUuNTk2YzAgNi4wMS00Ljg3MiAxMC44ODItMTAuODgzIDEwLjg4Mi02LjAxIDAtMTAuODgyLTQuODcyLTEwLjg4Mi0xMC44ODJzNC44NzItMTAuODgzIDEwLjg4Mi0xMC44ODMgMTAuODgzIDQuODcyIDEwLjg4MyAxMC44ODNabS0xMC44ODMgNC45MzZhNC45MzYgNC45MzYgMCAxIDAgMC05Ljg3MiA0LjkzNiA0LjkzNiAwIDAgMCAwIDkuODcyWiIvPgo8L3N2Zz4K";var z="data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjQwMCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHdpZHRoPSI0MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgICB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8Y2xpcFBhdGggaWQ9ImEiPgogICAgICAgIDxwYXRoIGQ9Im0wIDBoNDAwdjQwMGgtNDAweiIvPgogICAgPC9jbGlwUGF0aD4KICAgIDxnIGNsaXAtcGF0aD0idXJsKCNhKSI+CiAgICAgICAgPGNpcmNsZSBjeD0iMjAwIiBjeT0iMjAwIiBmaWxsPSIjMzM5NmZmIiByPSIxOTkuNSIgc3Ryb2tlPSIjNjZiMWZmIi8+CiAgICAgICAgPHBhdGggZD0ibTEyMi41MTkgMTQ4Ljk2NWM0Mi43OTEtNDEuNzI5IDExMi4xNzEtNDEuNzI5IDE1NC45NjIgMGw1LjE1IDUuMDIyYzIuMTQgMi4wODYgMi4xNCA1LjQ2OSAwIDcuNTU1bC0xNy42MTcgMTcuMThjLTEuMDcgMS4wNDMtMi44MDQgMS4wNDMtMy44NzQgMGwtNy4wODctNi45MTFjLTI5Ljg1My0yOS4xMTEtNzguMjUzLTI5LjExMS0xMDguMTA2IDBsLTcuNTkgNy40MDFjLTEuMDcgMS4wNDMtMi44MDQgMS4wNDMtMy44NzQgMGwtMTcuNjE3LTE3LjE4Yy0yLjE0LTIuMDg2LTIuMTQtNS40NjkgMC03LjU1NXptMTkxLjM5NyAzNS41MjkgMTUuNjc5IDE1LjI5YzIuMTQgMi4wODYgMi4xNCA1LjQ2OSAwIDcuNTU1bC03MC43IDY4Ljk0NGMtMi4xMzkgMi4wODctNS42MDggMi4wODctNy43NDggMGwtNTAuMTc4LTQ4LjkzMWMtLjUzNS0uNTIyLTEuNDAyLS41MjItMS45MzcgMGwtNTAuMTc4IDQ4LjkzMWMtMi4xMzkgMi4wODctNS42MDggMi4wODctNy43NDggMGwtNzAuNzAxNS02OC45NDVjLTIuMTM5Ni0yLjA4Ni0yLjEzOTYtNS40NjkgMC03LjU1NWwxNS42Nzk1LTE1LjI5YzIuMTM5Ni0yLjA4NiA1LjYwODUtMi4wODYgNy43NDgxIDBsNTAuMTc4OSA0OC45MzJjLjUzNS41MjIgMS40MDIuNTIyIDEuOTM3IDBsNTAuMTc3LTQ4LjkzMmMyLjEzOS0yLjA4NyA1LjYwOC0yLjA4NyA3Ljc0OCAwbDUwLjE3OSA0OC45MzJjLjUzNS41MjIgMS40MDIuNTIyIDEuOTM3IDBsNTAuMTc5LTQ4LjkzMWMyLjEzOS0yLjA4NyA1LjYwOC0yLjA4NyA3Ljc0OCAweiIKICAgICAgICAgICAgICBmaWxsPSIjZmZmIi8+CiAgICA8L2c+Cjwvc3ZnPgo=";var A="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTY3MiIgaGVpZ2h0PSIxNjcyIiB2aWV3Qm94PSIwIDAgMTY3MiAxNjcyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8Y2lyY2xlIGN4PSI4MzYuMjc0IiBjeT0iODM2LjIxOSIgcj0iODM1LjQzNiIgZmlsbD0iI0U2MDA3QSIvPgo8bWFzayBpZD0ibWFzazAiIG1hc2stdHlwZT0iYWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjAiIHdpZHRoPSIxNjcyIiBoZWlnaHQ9IjE2NzIiPgo8Y2lyY2xlIGN4PSI4MzYuMjc0IiBjeT0iODM2LjIxOSIgcj0iODM1LjQzNiIgZmlsbD0iI0M0QzRDNCIvPgo8L21hc2s+CjxnIG1hc2s9InVybCgjbWFzazApIj4KPHJlY3QgeD0iLTI5OS45MTkiIHk9Ii02Ni4wNTE4IiB3aWR0aD0iMjg0MC40OCIgaGVpZ2h0PSIxODcxLjM4IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXIpIi8+CjxwYXRoIGQ9Ik0tMzAuNjA2MiAtMjcwNC43OEM0LjYxMjU1IC0yMjgzLjY2IDE3Ny4xNDEgLTE4NzkuMSA0NTUuNzcyIC0xNTYyLjI2Qzc0MS41MzUgLTEyMzcuMzUgMTEzNy40MSAtMTAxOC41MSAxNTYxLjgyIC05NDAuNjQ1QzE3NzAuOTEgLTkwMi4xNTggMTk4OS4zNiAtODk0Ljk5OCAyMTk5LjMzIC05MzEuMjQ3QzIzOTkuMDUgLTk2NS43MDYgMjYwMC41NiAtMTA1Mi45NyAyNzEzLjM1IC0xMjMwLjY0QzI3NjMuNzMgLTEzMDkuNCAyNzk0LjQ5IC0xNDAyLjk0IDI3OTMuMTUgLTE0OTYuOTJDMjc5MS44MSAtMTU5Ny4xNiAyNzQ5LjQ2IC0xNjg3LjU2IDI2ODcuNDkgLTE3NjQuNTRDMjYxOC44NCAtMTg1MC4wMSAyNTMxLjAxIC0xOTIyLjUxIDI0NDQuMDggLTE5ODkuMTlDMjM1OC4wNCAtMjA1NC45OCAyMjY1LjMxIC0yMTEzLjE2IDIxNjQuMTEgLTIxNTIuOTlDMTkzOS40MiAtMjI0MC43IDE3MTYuMDcgLTIxOTEuOTIgMTUwMC43NSAtMjEwMS4wN0MxMjcyLjQ5IC0yMDA0Ljg2IDEwNTEuODIgLTE4OTEuMTkgODMwLjY5NyAtMTc4MC42NUMzNzguMjAxIC0xNTU0LjY1IC04NC4xMDMzIC0xMzMxLjMzIC01ODYuNTMgLTEyNDQuNTFDLTcxMi42OTQgLTEyMjIuNTkgLTg0MS4wODcgLTEyMTAuMDUgLTk2OS4wMzUgLTEyMDguNzFDLTEwODMuNjEgLTEyMDcuMzcgLTEyMDcuOTkgLTEyMDguMjYgLTEzMTguOTkgLTEyMzkuNTlDLTEzNjguMDMgLTEyNTMuNDYgLTE0MTguNDEgLTEyNzYuNzQgLTE0NDYuOTQgLTEzMjEuMDRDLTE0ODMuOTQgLTEzNzguMzIgLTE0NzEuMDIgLTE0NDkuOTMgLTE0NTQuOTcgLTE1MTEuNjlDLTE0MjcuNzcgLTE2MTQuNjIgLTEzNzYuNSAtMTcxMC4zOSAtMTMxMC4wOCAtMTc5My4xOEMtMTE3Mi43NyAtMTk2NC41OCAtOTc3Ljk1MSAtMjA3OC4yNSAtNzY4Ljg2NiAtMjEzNy43N0MtNjQ5LjM4OSAtMjE3MS43OCAtNTI1LjQ1NCAtMjE4OS4yNCAtNDAxLjUxOSAtMjE5NS45NUMtMjgyLjA0MiAtMjIwMi4yMSAtMTU0Ljk4NyAtMjIwNi42OSAtMzYuNDAxOSAtMjE4N0M3OS41MDg1IC0yMTY4LjIgMTU5Ljc1NCAtMjA5NS43IDE5OS40MzEgLTE5ODUuNjFDMjM5LjU1NCAtMTg3NS4wNyAyMzIuNDIxIC0xNzU3LjgyIDIyOC40MDkgLTE2NDIuMzZDMjIyLjYxNCAtMTQ2OS4xNyAyMzYuODc5IC0xMjIxLjY5IDQzMS4yNTIgLTExNTAuOThDNTMyLjAwNSAtMTExNC4yOCA2NTIuMzc0IC0xMTUyLjc3IDc1MC44OTcgLTExODEuNDFDODUzLjQzNCAtMTIxMS40IDk1My4yOTUgLTEyNTAuNzggMTA0OC43IC0xMjk4LjY2QzExNDcuMjIgLTEzNDguMzQgMTI0MC44NCAtMTQwNi45NiAxMzI4LjIyIC0xNDc0LjU0QzE0MDMuMTIgLTE1MzEuODIgMTQ5MC4wNSAtMTU5Ni4yNyAxNTQwLjQzIC0xNjc3LjcyQzE1NzYuMDkgLTE3MzUuNDUgMTU5Ni42IC0xODE0LjY2IDE1MzMuMjkgLTE4NjAuMzFDMTUyOS43MyAtMTg2Mi45OSAxNTIzLjQ4IC0xODYyLjU0IDE1MTkuOTIgLTE4NjAuMzFDMTMzNi42OSAtMTc0Ny45OCAxMjM1LjA1IC0xNTQ2LjE0IDExOTYuNzEgLTEzMzkuMzlDMTE2MS4wNCAtMTE0Ni41MSAxMTYxLjkzIC05MDguODcxIDEyOTAuNzcgLTc0OC4yMUMxMzk0LjIgLTYxOS4zMjMgMTU5Ny4wNCAtNTg0Ljg2NCAxNzI0Ljk5IC03MDEuMjJDMTc4Ni4wNyAtNzU2LjcxMyAxODA1LjI0IC04NDIuMTkgMTc3Ny4xNSAtOTE5LjYxMUMxNzQzLjcxIC0xMDExLjM1IDE2NTguMTIgLTEwNzYuMjQgMTU2NC45NCAtMTA5OC42MkMxNDQyLjM1IC0xMTI4LjE2IDEzMTMuMDYgLTEwOTUuMDQgMTE5Ny4xNSAtMTA1NC43NkMxMDg5LjcxIC0xMDE3LjE3IDk4Ni43MyAtOTY3Ljk0NCA4ODguMjA3IC05MTEuMTA5QzY4Mi42ODkgLTc5Mi41MTUgNDk2LjM0IC02NDQuMzg1IDMwNi40MjYgLTUwMi41MTlDMTEyLjQ5OSAtMzU3Ljk2OSAtODYuNzc4MyAtMjE3Ljg5NCAtMzEwLjU3NCAtMTIzLjQ2N0MtNTYxLjU2NSAtMTYuOTU2MSAtODM0Ljg0NiAzNi43NDY4IC0xMTA3LjY4IDMzLjE2NjdDLTEyMzAuNzIgMzEuMzc2NSAtMTM3MS4xNSAyOS4xMzg5IC0xNDgzLjk0IC0yNS45MDY1Qy0xNjA1LjIgLTg1LjQyNzIgLTE2NDIuNjUgLTIxMS42MjkgLTE2MTEuODkgLTMzNi45MzZDLTE1ODIuNDcgLTQ1Ni44NzIgLTE1MDkuMzYgLTU1OC40NiAtMTQyNy4zMyAtNjQ3LjUxN0MtMTM0NS43NCAtNzM2LjEyNyAtMTI1Mi41NyAtODEzLjk5NiAtMTE1Mi43MSAtODgxLjEyNEMtOTUzLjQzMSAtMTAxNC40OSAtNzI5LjYzNSAtMTEwNi4yMyAtNTAwLjQ4OSAtMTE3My44MUMtNDQyLjk4IC0xMTkwLjgxIC0zODUuMDI1IC0xMjA2LjAzIC0zMjcuMDY5IC0xMjE5LjlDLTI2NC42NTYgLTEyMzUuMTIgLTE5NS41NTYgLTEyNTcuNDkgLTEzMC45MTMgLTEyNTMuNDZDMTQuODY2MiAtMTI0NC4wNyAzNy4xNTcgLTEwNjguNjQgNjIuMTIyMyAtOTU1LjQxM0MxNzMuNTc0IC00NTUuNTI5IDIxNi44MTggNjcuMTc4NSA0MjguNTc3IDUzOC44NjhDNDU0Ljg4IDU5Ny45NDIgNDgzLjg1OCA2NTUuNjcyIDUxNS45NTYgNzExLjYxM0M1MzcuODAxIDc1MC4xIDU2NC41NDkgNzkxLjcxOSA2MTEuODA1IDc5OS4zMjdDNzE1LjIzMyA4MTQuOTkxIDc3OC4wOTIgNjgzLjQxOSA4MDguODUzIDYwNi40NDVDODQ5LjQyMSA1MDQuNDA5IDg4My43NDkgMzY4LjM2MiA4NTMuNDM0IDI1OS4xNjZDODI2LjY4NSAxNjMuODQ0IDczNy41MjMgMTI4LjQ4OSA2NDYuMTMyIDEzNi45OTJDNTMyLjAwNSAxNDcuNzMzIDQyNC4xMTkgMjA0LjEyMSAzMjAuNjkyIDI0OS4zMjFDMTkxLjQwNyAzMDUuNzA4IDYzLjQ1OTUgMzY2LjEyNCAtNjMuMTUwNCA0MjguMzNDLTMxNC41ODcgNTUxLjg0NyAtNTYyLjQ1NyA2ODIuNTI0IC04MTQuMzM5IDgwNi4wNEMtMTMxNi43NyAxMDU0LjQyIC0xODQ2LjM5IDEyNzYuODQgLTI0MDkgMTMzNi4zNkMtMjU0NC4wOCAxMzUwLjY4IC0yNjc5LjYgMTM1NS4xNSAtMjgxNS4xMyAxMzQ4LjQ0Qy0yODEwLjY3IDEzNTIuOTEgLTI4MDYuMjEgMTM1Ny4zOSAtMjgwMS43NiAxMzYxLjg2Qy0yNzk4LjE5IDExODcuMzMgLTI2NjUuMzQgMTA0NS4wMiAtMjUwNy41MiA5ODcuMjg3Qy0yMzMyLjMyIDkyMy4yOTIgLTIxMzkuNzMgOTcxLjYyNCAtMTk4My4yNSAxMDYyLjQ3Qy0xODE0LjI5IDExNjAuOTMgLTE2ODQuMTEgMTMwOS4wNiAtMTU2My43NCAxNDYxLjIxQy0xNDQ2LjUgMTYwOS43OSAtMTMzMi44MSAxNzYwLjYxIC0xMjAyLjE5IDE4OTguNDVDLTcyMC4yNzMgMjQwNS40OSAtODguMTE1NyAyNzY3LjU0IDU5My4wODEgMjkyMi4zOEM3NTAuMDA2IDI5NTguMTggOTI4LjMyOSAyOTkxLjc1IDEwNjUuNjQgMjg4NC4zNEMxMTY1LjUgMjgwNi4wMiAxMjEwLjUzIDI2NzkuMzggMTIyNy4wMiAyNTU3LjJDMTI0Ni4xOSAyNDEwLjg2IDEyMzAuMTQgMjI1NS41NyAxMTg1LjEyIDIxMTUuMDVDMTEzNS4xOCAxOTU5LjMxIDEwMjcuNzQgMTg0OS42NyA4NjAuMTIxIDE4MzcuMTRDNjc5LjEyMiAxODIzLjcxIDQ5Mi43NzQgMTg5NS4zMSAzMjAuNjkyIDE5NDAuOTZDMTA2LjI1NyAxOTk3LjggLTEwNy43MzEgMjA1NC42MyAtMzIyLjE2NSAyMTExLjQ3Qy01MzMuOTI1IDIxNjcuNDEgLTc0NS4yMzkgMjIyMy44IC05NTYuOTk4IDIyNzkuNzRDLTEwNjEuMzIgMjMwNy40OCAtMTE2Ni4wOCAyMzM1LjIzIC0xMjcwLjQgMjM2Mi45OEMtMTM3NC4yOCAyMzkwLjcyIC0xNDc4LjU5IDI0MjUuMTggLTE1ODQuMjUgMjQ0NC40M0MtMTY4NS45IDI0NjIuNzcgLTE3NjcuOTIgMjQxNS4zNCAtMTc3MS45NCAyMzA3LjkzQy0xNzc1LjA2IDIyMzAuNTEgLTE3NDcuNDIgMjE1My45OCAtMTcxMy45OCAyMDg1LjUxQy0xNjMzLjI5IDE5MjAuMzcgLTE1NDIuMzUgMTc2MC42MSAtMTQ0Mi4wNCAxNjA2LjY2Qy0xMjM2LjA3IDEyODkuODEgLTk5MC44NzkgOTk4LjQ3NiAtNzEzLjU4NiA3NDIuMDQ0Qy02NDYuMjY5IDY3OS44MzkgLTU3Ny4xNjggNjE5LjQyMyAtNTA2LjI4NCA1NjEuMjQ1Qy01MTIuNTI2IDU2MS4yNDUgLTUxOC43NjcgNTYxLjI0NSAtNTI1LjAwOSA1NjEuMjQ1Qy0zMDguNzkxIDcyOS41MTQgLTI4Ni45NDYgMTAzMC4yNSAtMjQzLjI1NyAxMjgwLjQyQy0yMTUuMTcxIDE0NDEuNTIgLTE3OS45NTIgMTYwMS43NCAtMTM4LjkzOCAxNzYwLjE2Qy0xMTcuOTg1IDE4NDAuNzIgLTk1LjI0ODUgMTkyMC44MiAtNzAuNzI5MiAyMDAwLjQ4Qy01MC42Njc3IDIwNjYuMjcgLTMzLjI4MSAyMTM2LjUzIC0yLjA3NDQ2IDIxOTcuODRDMTguODc4NyAyMjM4LjU2IDUwLjk3NzEgMjI3OS43NCA5OS4xMjQzIDIyODYuNDVDMTQ1LjkzNCAyMjkzLjE2IDE4NC43MTkgMjI2NC41MiAyMTIuMzYgMjIyOS4xN0MyNTIuOTI4IDIxNzYuMzYgMjc4LjM0IDIxMTAuNTcgMzA2LjQyNiAyMDUwLjZDMzM5Ljg2MSAxOTc5LjQ1IDM3MS45NTkgMTkwNy40IDQwMi4yNzUgMTgzNC45QzUyMS4zMDYgMTU1MC43MiA2MTYuNzA5IDEyNTYuMjUgNjg3LjE0NiA5NTYuNDA4Qzc2Ni41IDYxNi43MzggODEzLjc1NiAyNjkuNDU5IDgyOC40NjggLTc5LjYwOTRDODI4LjkxNCAtOTMuMDM1MiA4MTAuMTkgLTk3LjUxMDMgODAzLjUwMyAtODYuMzIyM0M2NDYuMTMyIDE4NC40MyA1NzMuMDIgNTAxLjI3NyA1OTkuMzIyIDgxMy42NDhDNjIxLjE2NyAxMDc1LjQ1IDcyNS4wNCAxMzUzLjgxIDk5NC43NTUgMTQ0Mi40MkMxMTI5LjM5IDE0ODYuNzIgMTI3Ni41MSAxNDgwLjkxIDE0MTQuNzEgMTQ1Ny42M0MxNTU4LjcgMTQzMy40NyAxNzAwLjAyIDEzOTAuOTUgMTgzMi44OCAxMzMwLjU0QzIwOTUuNDYgMTIxMS4wNSAyMzIyLjM4IDEwMTIuMzUgMjQ0Mi4zIDc0NS42MjVDMjQ5OC45MiA2MTkuODcgMjUzMS40NiA0ODIuNDggMjUyOS42OCAzNDQuMTk2QzI1MjguMzQgMjI0LjcwNyAyNTA2Ljk0IDgwLjYwNDIgMjQxMi40MyAtMy4wODI3NkMyMzA0LjEgLTk5LjMwMDMgMjE2MC41NSAtNDIuNDY0OCAyMDU5LjM1IDM0LjUwOTNDMTk1Mi4zNSAxMTUuOTU4IDE4NjIuNzUgMjE5Ljc4NCAxNzkyLjc1IDMzNC4zNUMxNDU3Ljk1IDg4MS4yMjQgMTU4MS40NCAxNTg2LjA3IDE3NjQuMjIgMjE2My44M0MxOTQ2LjU2IDI3MzkuMzQgMjI0Ny40OCAzMjc2LjgyIDI2NDMuOCAzNzMxLjVDMjY5Mi40IDM3ODcuNDQgMjc0Mi43NyAzODQyLjA0IDI3OTQuNDkgMzg5NS4zQzI4MDYuOTcgMzkwNy44MyAyODIzLjkxIDM4ODkuNDggMjgxMy4yMSAzODc2LjVDMjI3OS4xMyAzMTk2LjcxIDE3MDkuODMgMjU0NC42NyAxMTA3LjEgMTkyNC44NUM1MDguMzc3IDEzMDkuNSAtMTIyLjg4OSA3MjQuNTkxIC03ODIuNjg2IDE3NS4wMzJDLTEwOTkuNjYgLTg5LjAwNzMgLTE0MzAuODkgLTMzNi4wNDEgLTE3NDMuNDEgLTYwNS4wMDJDLTE4OTEuNDEgLTczMi41NDcgLTIwMzQuMDcgLTg2Ni44MDQgLTIxNjMuMzYgLTEwMTMuNTlDLTIyMzAuMjMgLTEwODkuNjcgLTIyOTMuNTMgLTExNjkuMzMgLTIzNTEuNDkgLTEyNTIuNTdDLTIzNzcuMzUgLTEyOTAuMTYgLTI0MDIuNzYgLTEzMjguMiAtMjQyNi4zOCAtMTM2Ny4xNEMtMjQzOC40MiAtMTM4Ni44MyAtMjQ1MC4wMSAtMTQwNi41MiAtMjQ2MS4xNiAtMTQyNi4yMUMtMjQ3OC4xIC0xNDU1Ljc0IC0yNDc3LjY1IC0xNDY5LjE3IC0yNDYyLjk0IC0xNDk5LjE1Qy0yMzgxLjggLTE2NjIuMDUgLTIxNTUuNzggLTE2OTIuNDkgLTE5OTUuNzMgLTE3MDguNkMtMTc4My41MyAtMTcyOS42MyAtMTU2OS41NCAtMTcxOC40NCAtMTM1OS41NiAtMTY4MS4zQy05MzYuMDQ1IC0xNjA2LjU2IC01MzUuMjYyIC0xNDM0LjcxIC0xNTcuNjYyIC0xMjMyLjg4QzU3OC44MTUgLTgzOS45NTIgMTI0Ni42NCAtMzEwLjk3OSAyMDQyLjQxIC0zNi4xOTk1QzIyMzEuNDMgMjkuMTM4OSAyNDI1LjggNzguODE0IDI2MjQuMTkgMTA1LjIxOEMyNzIzLjE2IDExOC42NDQgMjgyMi41NyAxMjYuMjUxIDI5MjIuNDMgMTI3LjU5NEMyOTYzLjg5IDEyOC4wNDIgMjk4NC40IDEzNi45OTIgMzAwNC45MSA5OS40MDAxQzMwMjQuOTcgNjIuNzAzMSAzMDM2LjEyIDIxLjUzMSAzMDM5LjI0IC0yMC41MzYxQzMwNTIuNjEgLTE4Ny4wMTUgMjk1Mi4zIC0zNDQuOTkxIDI4MjguODEgLTQ0Ny45MjFDMjcwNi42NiAtNTQ5LjUwOSAyNTUzLjc1IC02MDcuMjQgMjM5OC4xNiAtNjMwLjUxMUMyMDE4LjMzIC02ODYuODk5IDE2NjMuMDIgLTUzMi41MDMgMTMzNC4wMiAtMzU3Ljk2OUMxMjQyLjE4IC0zMDkuMTg5IDExNTEuMjMgLTI1OS4wNjYgMTA1OS40IC0yMTAuNzM0Qzk3Mi45MSAtMTY1LjA4NiA4MzguMjc2IC02Ni42MzExIDc0MC4xOTggLTEyNy45NDJDNjY3LjA4NSAtMTczLjU4OSA2NTAuMTQ0IC0yNzcuNDE1IDY0MC4zMzcgLTM1Ni4xNzlDNjI2LjA3MSAtNDcyLjA4OCA2MTcuMTU1IC01ODguODkxIDYwOS41NzYgLTcwNS4yNDhDNTc5LjcwNyAtMTE2OC44OCA1OTMuNTI3IC0xNjM1LjIgNjUxLjAzNiAtMjA5Ni4xNUM2NjUuNzQ4IC0yMjE2LjA5IDY4NC4wMjYgLTIzMzYuMDIgNzA0Ljk3OSAtMjQ1NS4wN0M3MjEuOTIgLTI1NTEuMjggNzMzLjUxMSAtMjY1NS4xMSA3NzMuNjM0IC0yNzQ1LjUxQzgxNC4yMDIgLTI4MzUuOTEgODk0Ljg5NCAtMjg5NC41MyA5OTYuMDkzIC0yODU4LjI4QzEwOTMuMjggLTI4MjMuMzggMTE2Ni4zOSAtMjczNC4zMiAxMjM0LjYgLTI2NjAuNDhDMTcyMS40MiAtMjEzMS45NSAyMDUwLjg4IC0xNDUzLjk1IDI2MzQuNDQgLTEwMTguMDdDMjc4Ny4zNSAtOTAzLjk0OCAyOTYzLjg5IC03OTAuNzI1IDMxNTYuMDQgLTc2NS4yMTZDMzMxMi45NiAtNzQ0LjE4MiAzNDkzLjk2IC03OTcuODg1IDM1NzcuNzcgLTk0Mi40MzVDMzYyNS45MiAtMTAyNS42NyAzNjI3LjcgLTExMjMuNjggMzYxNy40NSAtMTIxNi43N0MzNjA2LjMxIC0xMzE4LjggMzU4NS44IC0xNDIwLjM5IDM1NjMuMDYgLTE1MjAuNjRDMzUxNy4xNCAtMTcyMi4wMiAzNDUzLjM5IC0xOTE4LjkzIDMzNzMuMTUgLTIxMDguNjhDMzI5Mi4wMSAtMjI5OS43NyAzMTkzLjkzIC0yNDgzLjI2IDMwODAuMjUgLTI2NTYuOUMzMDc3LjEzIC0yNjYxLjgyIDMwNzAuODkgLTI2NjQuOTUgMzA2NS4wOSAtMjY2My4xNkMyNjg5LjcyIC0yNTMwLjI1IDI1NTYuODcgLTIxMTkuNDIgMjM2OC43NCAtMTgwNy41QzIyNjMuMDggLTE2MzIuMDcgMjEyMS4zMSAtMTQ1NC44NSAxOTI5LjYyIC0xMzcwLjcyQzE3MjcuNjcgLTEyODEuNjYgMTUxMSAtMTM0My44NiAxMzYxLjY2IC0xNTAwLjVDMTE2OS45NiAtMTcwMS44OCAxMTI3LjYxIC0xOTg3Ljg1IDEwOTAuMTYgLTIyNTEuNDRDMTA4My40NyAtMjI0Ni41MiAxMDc3LjIzIC0yMjQxLjE1IDEwNzAuNTQgLTIyMzYuMjNDMTQwOC4wMiAtMjA4OC4xIDE1NDguNDUgLTE3MTYuNjUgMTY4Ny4xIC0xNDAxLjU5QzE3MjMuNjUgLTEzMTguMzYgMTc2MS4xIC0xMjM1LjU2IDE4MDMuMDEgLTExNTUuMDFDMTg1NS42MSAtMTA1My44NyAxOTE1LjggLTk1Ny4yMDMgMTk2OS4yOSAtODU2LjA2M0MyMDY4LjI2IC02NjguNTUxIDIxNDUuODMgLTQ1MC4xNTkgMjA4MS42NCAtMjM3LjU4NUMyMDIwLjU2IC0zNS43NTIgMTgzNi40NCA0My4wMTIyIDE2NjIuMTMgMTI2LjY5OUMxNTgzLjIyIDE2NC43MzkgMTUwNC4zMSAyMDYuMzU4IDE0NDAuMTIgMjY2Ljc3NEMxMzY5LjY4IDMzMy4wMDggMTMyMi40MiA0MTguOTMyIDEyODQuMDggNTA2LjY0N0MxMjA1LjE4IDY4Ny44OTQgMTE1MS42OCA5MDEuODEgOTc0LjI0OCAxMDE0LjE0Qzg3My45NDEgMTA3Ny42OSA3NjguMjg0IDEwNjkuNjMgNjYzLjA3MyAxMDIxLjc1QzU3My45MTEgOTgxLjQ3IDQ5MS40MzYgOTM0LjkyNyAzOTUuMTQyIDkxMi41NTFDNDIuOTUyMSA4MzEuNTQ5IC0zNzQuMzI1IDk5Ny41OCAtNTI0LjU2MyAxMzQwLjM4Qy02MTEuNDk2IDE1MzkuMDggLTU2Mi45MDMgMTc1OS4yNyAtNDcxLjA2NiAxOTQ3LjIzQy0zODcuMjU0IDIxMTguNjMgLTI2NC42NTYgMjI2OS44OSAtMTIwLjIxNCAyMzkzLjg1QzIwMC4zMjMgMjY2OC42MyA2MTQuNDggMjc5Ny41MiAxMDMxLjc2IDI4MTEuODRDMTI1NC4yMiAyODE5LjQ1IDE0ODEuNTggMjc5OC40MiAxNjk4LjY5IDI3NDkuMTlDMTg3MS42NiAyNzA5LjgxIDIwNDUuMDggMjY0Ni4yNiAyMTg2LjQgMjUzNS43MkMyMzI2LjM5IDI0MjYuNTIgMjQxOC4yMiAyMjcwLjc5IDI0MjguOTIgMjA5MS4zM0MyNDQyLjMgMTg3Mi45NCAyMzQ5LjEyIDE2NjEuNzEgMjI0OC4zNyAxNDczLjc1QzIxNDEuODIgMTI3NS4wNSAyMDE2LjU1IDEwNzUuNDUgMTk4NC40NSA4NDguMTA3QzE5NTUuMDMgNjQxLjM1MSAyMDIxLjAxIDQ0My4wOTkgMjExOC42NCAyNjMuMTk0QzIyMTMuNiA4Ny43NjQ2IDIzMzMuNTIgLTcyLjAwMTUgMjQzNC4yNyAtMjQzLjg1MUMyNTQ1LjI4IC00MzMuMTUzIDI2MTIuNiAtNjM2LjMyOSAyNjY4Ljc3IC04NDguMDA4QzI3NjkuMDggLTEyMjcuOTYgMjg4NS40MyAtMTcxMS43MyAzMjkxLjEyIC0xODc2LjQyQzM1MTkuODIgLTE5NjkuNSAzNzcwLjgxIC0xOTA3LjMgMzk5NC42MSAtMTgzMS4yMkM0MTkyLjEgLTE3NjQuMDkgNDM5MC45MyAtMTY5MS41OSA0NTc3LjcyIC0xNTk3LjYxQzQ3NTQuMjYgLTE1MDkgNDkyMS44OSAtMTM5NS43OCA1MDQ2LjI3IC0xMjQwLjA0QzUwNjIuNzYgLTEyMTkuNDUgNTA4OC4xOCAtMTE5OC44NyA1MDc3LjQ4IC0xMTczLjM2QzUwNjkuOSAtMTE1NS40NiA1MDU1LjYzIC0xMTM4LjQ1IDUwNDQuNDkgLTExMjIuNzlDNTAxNS4wNiAtMTA4MS42MSA0OTgxLjYzIC0xMDQzLjU4IDQ5NDQuNjIgLTEwMDguNjdDNDg3NS41MiAtOTQyLjg4MyA0Nzk1LjcyIC04ODkuNjI3IDQ3MTEuNDcgLTg0Ni42NjVDNDUzNi43MSAtNzU3LjE2IDQzNDEuODkgLTcwOS43MjMgNDE0Ny45NiAtNjg3LjM0N0MzOTI1LjA2IC02NjEuMzkgMzY5OS40OCAtNjYyLjczMyAzNDc2LjEzIC02ODYuODk5QzMwMTguNzMgLTczNi41NzQgMjU3NC43IC04ODIuOTE1IDIxNjAuNTUgLTEwODAuNzJDMTk1NS4wMyAtMTE3OC43MyAxNzU2LjIgLTEyOTAuNjEgMTU2My42MSAtMTQxMS44OUMxMzc3LjI2IC0xNTI5LjU5IDExOTYuMjYgLTE2NTUuMzQgMTAwNi4zNSAtMTc2Ny4yMkM4MjIuMjI3IC0xODc1LjUyIDYyOC4zIC0xOTcxLjI5IDQyMC45OTkgLTIwMjcuMjNDMjQ3LjU3OSAtMjA3NC4yMiAtMC43MzcwNjEgLTIxMDguMjMgLTk3LjQ3NzggLTE5MTIuMjJDLTEyOS4xMyAtMTg0OC4yMiAtMTI2LjQ1NSAtMTc3Mi4xNCAtODQuNTQ5MSAtMTcxMy41MkMtNDkuNzc2MSAtMTY2NC43NCA1LjUwNDE1IC0xNjM3LjQ0IDYwLjc4NDcgLTE2MTcuNzVDMTk2LjMxMSAtMTU2OS40MiAzODEuMzIyIC0xNTYwLjQ3IDQ1Ny4xMDkgLTE0MTcuNzFDNTM5LjU4NCAtMTI2Mi40MSA0NzAuNDgzIC0xMDcwLjQzIDU0NC45MzQgLTkxMi4wMDRDNTU5LjE5OSAtODgxLjU3MiA1NzMuMDIgLTg1Mi4wMzUgNjA3LjM0NyAtODQ1Ljc3QzY0My45MDMgLTgzOS4wNTcgNjgxLjc5NyAtODQzLjA4NSA3MTcuOTA3IC04NTAuNjkzQzc5Ni4zNyAtODY2LjgwNCA4ODIuNDExIC05MTMuNzk0IDk2My45OTQgLTg5OS40NzNDMTA3NC4xMSAtODgwLjIyOSAxMDY1LjY0IC03NTMuNTggMTA5My43MiAtNjcxLjY4M0MxMTE2LjAyIC02MDcuMjQgMTE3OS4zMiAtNTM2Ljk3OSAxMjUyLjg4IC01NjUuNjJDMTI2NC4wMiAtNTcwLjA5NSAxMjY2LjcgLTU4OC40NDQgMTI1Mi44OCAtNTkxLjU3NkM5MTcuNjMgLTY2Ny42NTYgNTY4LjExNSAtNjQ5LjMwNyAyMjYuNjI2IC02NDcuMDdDLTEzNC4wMzQgLTY0NC4zODQgLTQ5NC4yNDggLTY0MC44MDQgLTg1NC45MDcgLTYzNS44ODFDLTEyMTUuNTcgLTYzMC45NTkgLTE1NzUuNzggLTYyNS4xNDEgLTE5MzYuNDQgLTYxOC40MjhDLTIwNjYuNjIgLTYxNS43NDMgLTIyMDMuNDggLTYyMy4zNTEgLTIzMjguNzUgLTU4MC44MzZDLTIzNzYuMDEgLTU2NS4xNzMgLTI0MjIuMzcgLTU0MS45MDEgLTI0NTcuMTUgLTUwNS4yMDRDLTI0NzguNTQgLTQ4Mi44MjggLTI1MTkuNTYgLTQyNy4zMzUgLTI1MDguNDEgLTM5NC4yMTlDLTI1MDAuODQgLTM3MS44NDIgLTI0NjIuNSAtMzQ0Ljk5MSAtMjQ0NS41NSAtMzI4LjQzM0MtMjQxOC44MSAtMzAyLjQ3NiAtMjM5MS4xNyAtMjc3Ljg2MiAtMjM2Mi42MyAtMjUzLjY5NkMtMjMxMS44MSAtMjExLjE4MSAtMjI1Ny44NyAtMTcxLjM1MiAtMjIwMi4xNCAtMTM1LjEwMkMtMjA4NS4zNCAtNTguNTc1NyAtMTk2MC4wNyAzLjYzMDEzIC0xODMwLjc4IDU1LjU0MjdDLTE1NTUuNzIgMTY2LjA4MSAtMTI2NC4xNiAyMjguMjg3IC05NzIuNjAxIDI3My45MzRDLTI4Mi4wNDMgMzgyLjIzNSA0MjAuMTA3IDM5Mi41MjggMTExNi45MSAzNTQuOTM2QzE0NjkuOTkgMzM1LjY5MyAxODIyLjYyIDMwNC4zNjYgMjE3NC4zNyAyNjcuMjIxQzIzMTAuNzggMjUyLjkwMSAyNDQ3LjIgMjMzLjIxIDI1ODQuNTEgMjM4LjU4QzI3MDAuODcgMjQzLjA1NSAyODI1LjY5IDI2Mi43NDYgMjkyMi40MyAzMzEuNjY1QzI5NzAuMTQgMzY1LjY3NyAzMDA1LjggNDEwLjg3NyAzMDI5Ljg3IDQ2My42ODVDMzAzMC43NyA0NTguMzE0IDMwMzEuMjEgNDUyLjk0NCAzMDMyLjEgNDQ3LjU3M0MyODkxLjIzIDU2MC43OTcgMjcyMi4yNyA2MjYuNTgzIDI1NDguODUgNjcwLjg4OEMyMzY1LjE3IDcxNy44NzggMjE3Ni4xNSA3NDcuNDE1IDE5ODguMDIgNzcxLjU4MUMxNTk2LjE1IDgyMS43MDQgMTE5OS4zOCA4MzMuNzg3IDgwNS4yODYgODA4LjcyNUM2MDguNjg0IDc5Ni4xOTUgNDE0Ljc1NyA3NjkuMzQzIDIxOS40OTMgNzQzLjM4N0MxNTMuOTU5IDczNC44ODQgODEuNzM3OCA3MzUuMzMxIDMzLjE0NDUgNzg3LjY5MkMtMi45NjU4MiA4MjYuMTc5IC05LjIwNzI4IDg4MC4zMjkgLTQuNzQ5MjcgOTMwLjg5OUMxLjQ5MjE5IDk5OS4zNyAyMi44OTA5IDEwNjUuMTYgMzguOTQwMiAxMTMxLjM5QzU5LjAwMTUgMTIxNS41MiA3NS40OTYzIDEzMTcuNTYgLTI3LjkzMTQgMTM0OC40NEMtMTA1Ljk0OCAxMzcyLjE2IC0xOTcuNzg1IDEzNTcuMzkgLTI3Ny41ODQgMTM1NC43Qy0zODAuMTIxIDEzNTEuNTcgLTQ4Mi4yMTEgMTM0OC40NCAtNTg0Ljc0NyAxMzQ1LjMxQy0xMDQxLjI2IDEzMzAuOTkgLTE0OTguMjEgMTMxNy4xMSAtMTk1NC43MiAxMzAyLjc5Qy0xOTY3LjY1IDEzMDIuMzQgLTE5NzMuNDQgMTMyMS41OSAtMTk2MS40MSAxMzI3Ljg1Qy0xNTIyLjI4IDE1NTguNzggLTEwODMuMTYgMTc4OS4yNSAtNjQ0LjA0IDIwMjAuMTdDLTQ0Mi41MzQgMjEyNi4yNCAtMjQyLjgxMiAyMjQyLjE0IC0yOS43MTQ2IDIzMjMuNTlDMTY0LjIxMiAyMzk3LjQ0IDM3OS4wOTMgMjQzNi44MiA1ODAuNTk4IDIzNjkuMjRDNzY1LjE2MyAyMzA3LjQ4IDkxNC41MDkgMjE3Mi43OCAxMDQ2LjAyIDIwMzMuMTVDMTE4My43OCAxODg3LjI2IDEzMDcuNzEgMTcyNy45NCAxNDE2LjQ5IDE1NTguNzhDMTYzNS4zOCAxMjE3Ljc2IDE3OTEuODYgODM1LjEyOSAxODcxLjY2IDQzNy4yODFDMTk2My41IC0xOS4xOTM2IDE5NTcuMjYgLTQ4Ni44NTYgMTk2Ny4wNiAtOTUwLjQ5MUMxOTcxLjk3IC0xMTg0LjEgMTk4MS4zMyAtMTQxOC42IDIwMDkuODYgLTE2NTAuODdDMjAyNC41NyAtMTc3Mi4xNCAyMDQ0LjY0IC0xODkyLjk4IDIwNzIuMjggLTIwMTIuMDJDMjA5NS4wMSAtMjExMC4wMiAyMTI0Ljg4IC0yMjA4LjkzIDIxNzkuMjcgLTIyOTQuNEMyMjM0LjEgLTIzNzkuODggMjMxNC4zNSAtMjQ0NS4yMiAyNDE1LjEgLTI0NjUuMzZDMjUwOC43MiAtMjQ4NC4xNSAyNjAzLjY4IC0yNDU3Ljc1IDI2NjIuNTMgLTIzNzkuODhDMjc0Ni4zNCAtMjI2OC40NSAyNzQ5LjkxIC0yMTAwLjYzIDI4NjIuNyAtMjAxMC4yM0MzMDAwLjkgLTE4OTkuMjQgMzE5NC4zOCAtMjAwOS4zMyAzMzExLjYzIC0yMDk4Ljg0QzM0NDcuNiAtMjIwMi42NiAzNTgwIC0yMzU5Ljc0IDM3NTUuMjEgLTIzOTMuNzVDMzc5Ny41NiAtMjQwMS44MSAzODQzLjkyIC0yNDAyLjI2IDM4ODQuMDQgLTIzODUuN0MzOTQyLjQ1IC0yMzYxLjUzIDM5NjEuNjIgLTIzMDcuODMgMzk2Mi41MSAtMjI0OC4zMUMzOTYzLjg0IC0yMTMwLjYxIDM5NDkuMTMgLTIwMTAuNjcgMzkzNy45OSAtMTg5My40MkMzOTI3LjI5IC0xNzgzLjc4IDM5MjUuOTUgLTE2NTguMDMgMzg2OS4zMyAtMTU2MC40N0MzODEyLjcyIC0xNDYyLjQ2IDM3MDEuMjYgLTE0MjQuNDIgMzYwMS44NSAtMTM4NS40OEMzNDkwLjQgLTEzNDEuNjMgMzM3OC41IC0xMjk3Ljc3IDMyNjcuMDQgLTEyNTMuOTFDMzE2My4xNyAtMTIxMy4xOSAzMDU3LjUxIC0xMTYzLjUxIDI5NDYuMDYgLTExNDYuOTVDMjgyNC4zNiAtMTEyOC42MSAyNzA4Ljg5IC0xMTY3LjU0IDI2MDAuNTYgLTEyMjAuMzVDMjUwNC43MSAtMTI2Ny4zNCAyNDEyLjQzIC0xMzIxLjk0IDIzMjMuMjcgLTEzODAuMTFDMTk2Mi42MSAtMTYxNS45NiAxNjUzLjY2IC0xOTIwLjcyIDEzMDQuMTUgLTIxNzEuNzhDOTY4LjQ1MiAtMjQxMi41NSA1NzMuNDY1IC0yNjE2LjE3IDE1MS43MyAtMjYxOS43NUMtMjUuMjU2NiAtMjYyMS4xIC0yMzEuMjIgLTI1OTkuMTcgLTMzOS41NTIgLTI0NDAuNzRDLTQzMS4zODkgLTIzMDYuNDkgLTQzNi43MzkgLTIxMjkuNzIgLTQ0OS42NjcgLTE5NzMuMDhDLTQ2Ny45NDUgLTE3NTQuMjQgLTUzMS42OTYgLTE1NDcuOTMgLTU3Mi43MSAtMTMzMy4xMkMtNjA3LjQ4MyAtMTE0OC43NCAtNjEwLjE1OCAtOTY0LjgxMSAtNTQ2Ljg1MyAtNzg2LjI1Qy00MzYuMjkzIC00NzMuODc4IC0xNjcuMDI0IC0yMTguMzQyIDE1Mi42MjEgLTEzMS45N0MzMjkuMTYyIC04NC4wODQ3IDUwNi4xNDggLTEwNS4xMTggNjg0LjQ3MiAtMTMwLjYyN0M4NzQuMzg2IC0xNTcuOTI2IDEwOTEuOTQgLTE5Ni40MTMgMTI2OC45MyAtOTcuOTU3OEMxNDUyLjYgNC41MjUxNSAxNTIxLjcgMjIzLjM2NCAxNTA5LjIyIDQyMy40MDdDMTUwMS42NCA1NDIuNDQ5IDE0NjkuMSA2NTguMzU3IDE0MjkuODYgNzcwLjIzOEMxNDAwIDg1Ni4xNjMgMTMzMS4zNCA5NjUuMzU5IDEzODIuNjEgMTA1NS4zMUMxNDAyLjIyIDEwODkuMzIgMTQzMi4wOSAxMTE3LjA3IDE0NTguODQgMTE0NC44MkMxNDk2LjI5IDExODMuNzUgMTUzMy43NCAxMjIyLjI0IDE1NzIuOTcgMTI1OS4zOEMxNjQxLjYyIDEzMjMuODMgMTcxNS4xOCAxMzg0LjI0IDE3OTcuNjYgMTQzMC4zNEMxOTc2Ljg3IDE1MzAuMTMgMjE2Ny4yMyAxNTI2LjU1IDIzNTYuNyAxNDU4LjUzQzI0NTYuNTYgMTQyMi43MyAyNTUxLjk3IDEzNzYuMTkgMjY0OS4xNSAxMzM0LjEyQzI3NTIuNTggMTI4OS4zNyAyODU3LjM1IDEyNDguNjQgMjk2My44OSAxMjExLjk0QzMxNjkuNDEgMTE0MC43OSAzMzgwLjI4IDEwODQuODUgMzU5My4zOCAxMDQzLjY4QzQwMjQuMDMgOTYwLjg4MyA0NDY2LjcyIDkzOC45NTUgNDkwMy4xNiA5ODAuMTI3QzUxMTguNDkgMTAwMC4yNyA1MzMyLjAzIDEwMzYuMDcgNTU0Mi40NiAxMDg2LjY0QzU1NTkuNCAxMDkwLjY3IDU1NjYuNTMgMTA2NC43MSA1NTQ5LjU5IDEwNjAuNjhDNDcwNS42NyA4NTcuNTA1IDM4MDcuMzcgODk4LjIzIDI5ODQuODUgMTE3Ni4xNEMyODgxLjg3IDEyMTEuMDUgMjc4MC4yMiAxMjQ5LjU0IDI2NzkuOTEgMTI5MS42QzI1NzguNzEgMTMzNC4xMiAyNDgwLjE5IDEzODIuOSAyMzc4LjEgMTQyMS44M0MyMjc0LjIzIDE0NjEuMjEgMjE2My42NyAxNDkwLjc1IDIwNTEuNzcgMTQ4Mi43QzE5NDkuMjMgMTQ3NS4wOSAxODUyLjQ5IDE0MzUuMjYgMTc2Ni45IDEzNzkuNzdDMTY4MS4zIDEzMjQuNzIgMTYwNS45NiAxMjU1LjM1IDE1MzQuMTggMTE4My43NUMxNTAyLjk4IDExNTIuNDIgMTQ3MS43NyAxMTIwLjY1IDE0NDEuOSAxMDg3Ljk4QzE0MjMuNjIgMTA2Ny44NCAxNDA1LjM1IDEwNDcuMjYgMTM5Ni40MyAxMDIwLjg1QzEzODIuNjEgOTgwLjU3NCAxMzk1LjU0IDk0MC4yOTcgMTQwOS4zNiA5MDIuMjU4QzE0ODIuMDIgNzAyLjY2MiAxNTYwLjA0IDQ5Ni4zNTQgMTUzMS4wNiAyNzkuNzUyQzE1MDcuNDQgMTAzLjg3NSAxNDE0LjI2IC02Mi4xNTU4IDEyNDguODcgLTEzNy4zNEMxMDgyLjU4IC0yMTIuOTcxIDg5Mi4yMTkgLTE4Ni41NjcgNzE3LjkwNyAtMTYxLjk1NEM1MjYuNjU1IC0xMzUuMTAyIDMzOC4wNzggLTEwNi45MDggMTQ4LjYwOSAtMTYwLjYxMUMtMjEuMjQ0NCAtMjA4Ljk0NCAtMTc1Ljk0IC0zMDYuNTA0IC0yOTguMDkyIC00MzQuMDQ4Qy00MjAuMjQ0IC01NjEuNTkzIC01MTAuNzQzIC03MjAuNDYzIC01NTAuNDIgLTg5My4yMDhDLTU5OS4wMTMgLTExMDMuNTQgLTU1My4wOTUgLTEzMTMuODggLTUwMy4xNjQgLTE1MTkuMjlDLTQ3Ny4zMDcgLTE2MjQuOTEgLTQ1MS4wMDQgLTE3MzAuMDggLTQzNi43MzkgLTE4MzcuOTNDLTQyNC43MDIgLTE5MjUuNjQgLTQyMC42ODkgLTIwMTQuMjUgLTQxMS43NzMgLTIxMDEuOTdDLTM5Mi42MDQgLTIyODIuMzIgLTM0NC45MDIgLTI0NzkuMjMgLTE1Ni43NyAtMjU0OS45NEMtNTYuMDE3MyAtMjU4Ny41MyA1OC41NTU0IC0yNTkzLjggMTY1LjU1IC0yNTkyLjAxQzI3Mi45OSAtMjU4OS43NyAzNzkuOTg0IC0yNTc0LjExIDQ4NC4zMDMgLTI1NDguMTVDNjk0LjI4IC0yNDk1LjM0IDg5Mi4yMTkgLTI0MDEuODEgMTA3Ni43OCAtMjI4OS40OEMxNDQzLjY5IC0yMDY2LjYxIDE3NTMuNTIgLTE3NjQuNTQgMjA5NS40NiAtMTUwNy4yMUMyMjY0Ljg3IC0xMzc5LjY3IDI0NDQuOTcgLTEyNTYuMTUgMjY0MC4yNCAtMTE3MS41N0MyNzMzLjQxIC0xMTMxLjI5IDI4MzEuOTMgLTExMDUuNzggMjkzNC4wMiAtMTExNy44NkMzMDQxLjQ2IC0xMTMwLjg0IDMxNDIuNjYgLTExNzYuMDQgMzI0Mi41MyAtMTIxNS40MkMzMzUzLjk4IC0xMjU5LjI4IDM0NjUuODggLTEzMDMuMTQgMzU3Ny4zMyAtMTM0N0MzNjYzLjgxIC0xMzgxLjAxIDM3NTguMzMgLTE0MTAuOTkgMzgyOS42NiAtMTQ3Mi43NUMzOTA0LjU1IC0xNTM3LjE5IDM5MzEuMyAtMTYzMS42MiAzOTQ0LjY3IC0xNzI2LjA1QzM5NjAuNzIgLTE4MzguODMgMzk2OS42NCAtMTk1Mi45NCAzOTc3LjY2IC0yMDY2LjE3QzM5ODEuNjggLTIxMjIuMTEgMzk4Ni41OCAtMjE3OC4wNSAzOTg3LjQ3IC0yMjMzLjk5QzM5ODguMzYgLTIyNzcuODUgMzk4My45MSAtMjMyMi42IDM5NTguMDUgLTIzNTkuM0MzOTE3LjkzIC0yNDE2LjU4IDM4NDIuNTggLTI0MzAuOSAzNzc3LjA1IC0yNDI0LjE5QzM2MDguOTggLTI0MDcuMTggMzQ3NC4zNSAtMjI2OCAzMzUwLjQxIC0yMTY1LjUyQzMyMjYuNDggLTIwNjMuMDMgMjk4Ni42MyAtMTg5MS42MyAyODQ3LjA5IC0yMDYwLjhDMjc1NC44MSAtMjE3Mi42OCAyNzU1LjcgLTIzNDAuNSAyNjQyLjAyIC0yNDM4Ljk1QzI1MjEuNjUgLTI1NDIuNzggMjMzMy41MiAtMjQ5OS44MiAyMjI2LjUzIC0yMzk3LjMzQzIwODMuODcgLTIyNjAuODQgMjA0NC42NCAtMjA0NS4xMyAyMDExLjY1IC0xODU4Ljk2QzE5MzAuNTEgLTE0MDAuNyAxOTQxLjIxIC05MzMuOTMyIDE5MjguNzMgLTQ3MC4yOThDMTkxNi42OSAtMTguMjk4NiAxODc1LjY3IDQzMS40NjMgMTcyNC45OSA4NjAuMTlDMTU4Ny4yNCAxMjUzLjEyIDEzNzMuNjkgMTYxOS4xOSAxMDk5LjUyIDE5MzEuNTZDOTY2LjIyMyAyMDgyLjgzIDgxNy4zMjMgMjIzNy4yMiA2MzAuNTI5IDIzMjAuMDFDNDE3LjQzMiAyNDEzLjk5IDE4NS42MTEgMjM3Ny43NCAtMjUuMjU2NiAyMjk3LjE5Qy0yNDYuMzc4IDIyMTMuMDYgLTQ1My42NzkgMjA5MC44OCAtNjYyLjc2NCAxOTgwLjc5Qy04NzkuODczIDE4NjYuNjcgLTEwOTYuOTggMTc1Mi41NSAtMTMxNC4wOSAxNjM4LjQzQy0xNTI2LjMgMTUyNyAtMTczOC41IDE0MTUuNTcgLTE5NTAuNzEgMTMwNC4xM0MtMTk1Mi45NCAxMzEyLjY0IC0xOTU1LjE2IDEzMjAuNjkgLTE5NTcuMzkgMTMyOS4yQy0xNTQyLjM1IDEzNDIuMTcgLTExMjYuODUgMTM1NC43IC03MTEuODAzIDEzNjcuNjhDLTUxMy40MTggMTM3My45NSAtMzEyLjgwMyAxMzg5LjE2IC0xMTQuNDE4IDEzODUuNThDLTU3LjgwMDUgMTM4NC42OSA3LjczMzQgMTM3Ni42MyA0Ny44NTYyIDEzMzEuODhDOTIuNDM3MyAxMjgyLjY1IDgxLjI5MTcgMTIxMS41IDY4LjM2MzMgMTE1MS45OEM0My44NDQgMTAzNS42MiAtNjAuOTIxMSA3ODEuNDI3IDE0MC4xMzkgNzY1Ljc2M0MxODMuMzgyIDc2Mi4xODMgMjI3LjUxNyA3NzEuNTgxIDI2OS44NjkgNzc4LjI5NEMzMTguOTA4IDc4NS45MDIgMzY3Ljk0NyA3OTIuNjE1IDQxNi45ODYgNzk4Ljg4QzUxOC4xODUgODExLjg1OCA2MTkuODMgODIyLjE1MSA3MjEuOTIgODI5Ljc1OUMxMTE4LjY5IDg2MC4xOTEgMTUxOC4xMyA4NTIuNTgzIDE5MTMuMTIgODA2LjkzNUMyMTIzLjEgNzgyLjc2OSAyMzMzLjk3IDc1MS40NDIgMjUzOS40OCA2OTkuOTc3QzI3MjIuMjcgNjU0LjMzIDI5MDAuMTQgNTg1LjQxMSAzMDQ4LjE1IDQ2Ni4zN0MzMDUzLjA2IDQ2Mi4zNDIgMzA1Mi42MSA0NTUuMTgyIDMwNTAuMzggNDUwLjI1OUMyOTU1LjQyIDI0My4wNTUgMjcwNi4yMiAyMDcuMjUzIDI1MDMuMzcgMjExLjI4MUMyMzU5LjgyIDIxNC40MTQgMjIxNi43MiAyMzUuODk1IDIwNzQuNTEgMjUwLjY2M0MxOTAxLjA5IDI2OC41NjQgMTcyNy42NyAyODQuNjc1IDE1NTQuMjUgMjk4LjU0OEM4NjcuMjUzIDM1My41OTQgMTc0LjkxMiAzNzEuOTQyIC01MTEuNjM0IDMwNS43MDlDLTgyNy4yNjcgMjc1LjI3NyAtMTE0NC4yNCAyMzAuNTI1IC0xNDUxLjQgMTUxLjMxM0MtMTcyNS41NyA4MC42MDQyIC0xOTk1LjI5IC0yMS40MzE0IC0yMjI5LjM0IC0xODMuNDM1Qy0yMjg5LjUyIC0yMjUuMDU1IC0yMzQ2LjU5IC0yNzAuMjU1IC0yNDAwLjUzIC0zMTkuOTNDLTI0MjQuNiAtMzQyLjMwNiAtMjQ0OS4xMiAtMzY0LjY4MiAtMjQ3MC45NyAtMzg5LjI5NkMtMjQ4My44OSAtNDAzLjYxNyAtMjQ4NC43OSAtNDA2LjMwMiAtMjQ3OC41NCAtNDI0LjY1Qy0yNDcyLjc1IC00NDAuNzYxIC0yNDY0LjcyIC00NTUuOTc3IC0yNDU0LjQ3IC00NjkuODVDLTIzODQuOTIgLTU2Mi45MzUgLTIyNDQuMDUgLTU4MS43MzEgLTIxMzYuNjEgLTU4Ny4xMDFDLTE5NjUuODYgLTU5NS42MDQgLTE3OTMuNzggLTU5NC4yNjIgLTE2MjMuMDQgLTU5Ny4zOTVDLTE0NDguMjggLTYwMC41MjcgLTEyNzMuNTIgLTYwMy4yMTIgLTEwOTguNzcgLTYwNS44OTdDLTc0Ni41NzYgLTYxMC44MiAtMzk0LjM4NiAtNjE1LjI5NSAtNDIuMTk3MyAtNjE3Ljk4QzEzMi41NiAtNjE5LjMyMyAzMDYuODcxIC02MjAuNjY2IDQ4MS42MjkgLTYyMS41NjFDNjQ4LjM2MSAtNjIyLjQ1NiA4MTUuMDk0IC02MjIuOTAzIDk4MS4zODEgLTYwNy4yNEMxMDY5LjY1IC01OTguNzM3IDExNTcuMDMgLTU4NS4zMTEgMTI0My41MiAtNTY1LjYyQzEyNDMuNTIgLTU3NC4xMjMgMTI0My41MiAtNTgzLjA3MyAxMjQzLjUyIC01OTEuNTc2QzExNjEuOTMgLTU2MC4yNSAxMTE4LjI0IC02NjQuNTIzIDExMDUuMzIgLTcyNi43MjlDMTA5My43MiAtNzgxLjc3NCAxMDg1LjcgLTg0Mi42MzcgMTA0NC42OSAtODg0LjcwNUM5NzMuMzU2IC05NTguNTQ2IDg2Ni44MDggLTkyMS40MDEgNzgyLjU1IC04OTYuNzg4QzczMS4yODIgLTg4MS41NzIgNjY1Ljc0OCAtODU3Ljg1MyA2MTEuODA1IC04NzIuMTc0QzU2MC41MzcgLTg4Ni4wNDcgNTQzLjU5NiAtOTgzLjE2IDUzNi40NjMgLTEwMjguMzZDNTE4LjYzMSAtMTE0Mi45MyA1MzQuNjggLTEyNjIuNDEgNTAwLjc5OCAtMTM3NC4zQzQzNy45MzkgLTE1ODEuMDUgMjE3LjI2NCAtMTU4NC4xOCA0OC4zMDIgLTE2NTAuODdDLTU2LjkwODkgLTE2OTIuNDggLTEzNC4wMzQgLTE3ODkuMTUgLTc0LjI5NTcgLTE5MDQuNjFDNS41MDQzOSAtMjA1OC41NiAxOTcuMjAyIC0yMDUxLjQgMzQyLjA5IC0yMDE5LjE4QzYyNi45NjIgLTE5NTYuMDggODg1Ljk3OCAtMTgxMy4zMiAxMTMwLjczIC0xNjU4LjkyQzEzNzkuNDkgLTE1MDIuMjkgMTYyMS4xMiAtMTMzNS4zNiAxODc5LjI0IC0xMTkzLjk0QzIzOTUuOTMgLTkxMS41NTYgMjk2My40NSAtNzAyLjU2MiAzNTUyLjgxIC02NTIuODg3QzM4MjcuODcgLTYyOS42MTYgNDExMi4zIC02MzguMTE5IDQzODEuNTcgLTcwMS42NjdDNDYxNC4yOCAtNzU2LjcxMyA0ODQ4LjMzIC04NTkuMTk2IDUwMDkuNzEgLTEwNDEuMzRDNTA0Ny42MSAtMTA4NC4zIDUwODEuMDQgLTExMzEuMjkgNTEwOS4xMyAtMTE4MC45N0M1MTExLjM2IC0xMTg0Ljk5IDUxMTEuOCAtMTE5MC44MSA1MTA5LjEzIC0xMTk0LjM5QzQ5NjMuNzkgLTE0MDYuNTIgNDc0Ny4xMyAtMTU0OC4zOCA0NTE3LjU0IC0xNjU0LjQ1QzQ0MDAuMjkgLTE3MDkuMDQgNDI3OS40OCAtMTc1NS4xNCA0MTU4LjIyIC0xNzk5LjQ0QzQwMTEuOTkgLTE4NTMuMTUgMzg2NC40MyAtMTkwNy43NCAzNzEwLjYyIC0xOTM0LjE1QzM1NjYuNjMgLTE5NTguNzYgMzQxNy4yOCAtMTk1Ni45NyAzMjc5Ljk3IC0xOTAxLjkzQzMxNzIuNTMgLTE4NTguNTIgMzA3OC45MSAtMTc4Ni45MSAzMDAyLjIzIC0xNzAwLjU0QzI4MjIuMTMgLTE0OTcuODEgMjczOS4yMSAtMTIzNi45MSAyNjcxLjQ0IC05NzkuMTMyQzI2MzIuMjEgLTgzMS4wMDIgMjU5Ni4xIC02ODEuNTI5IDI1NDIuMTYgLTUzNy40MjZDMjQ5Mi42NyAtNDA0LjUxMiAyNDI0LjQ3IC0yODEuODkgMjM0OS4xMiAtMTYyLjQwMUMyMjEzLjE1IDUyLjg1NzcgMjA1MS43NyAyNjIuNzQ2IDE5NzkuOTkgNTExLjEyMkMxOTQ0Ljc3IDYzMi44NDggMTkzNi4zIDc1OS40OTggMTk1OC41OSA4ODQuMzU3QzE5ODQuMDEgMTAyNi42NyAyMDQ1LjUzIDExNjAuMDMgMjExMS45NSAxMjg3LjEzQzIyNTAuMTUgMTU1MS42MSAyNDQyLjMgMTgzOC4wMyAyMzkxLjAzIDIxNTIuMTlDMjM0Ny43OSAyNDE0Ljg5IDIxMjIuMjEgMjU3OC4yMyAxODg4LjE2IDI2NjQuNjFDMTYxOS43OCAyNzYzLjk2IDEzMTguODYgMjc5NC44NCAxMDM0Ljg4IDI3ODUuODlDNDcxLjgyMSAyNzY4LjQzIC0xMDcuMjg1IDI1MjUuODcgLTQwNC42NCAyMDIzLjMxQy00NzkuOTgyIDE4OTUuNzYgLTUzOS43MiAxNzUxLjY2IC01NDguMTkxIDE2MDEuNzRDLTU1Ny41NTMgMTQ0MC42MyAtNDk1LjEzOSAxMjkyLjk1IC0zODguMTQ1IDExNzQuOEMtMjE1LjYxNyA5ODUuNDk3IDUxLjQyMjYgODk0LjY1IDMwMy4zMDUgOTI1LjA4MkMzNjUuNzE4IDkzMi42ODkgNDI3LjY4NiA5NDcuOTA1IDQ4Ni41MzIgOTcxLjE3N0M1NTIuNTEyIDk5Ny4xMzMgNjEzLjU4OCAxMDM0LjI4IDY3OS41NjggMTA2MC42OEM3OTUuMDMyIDExMDYuNzggOTEyLjI4MSAxMDkyLjkgMTAxMS43IDEwMTcuMjdDMTIyNS42OCA4NTQuMzczIDEyNDAuNCA1NjguNDA1IDEzODguODUgMzYwLjc1NEMxNTM4LjY0IDE1MS4zMTMgMTgyMS4yOSAxMzMuODYgMTk5NS4xNSAtNDUuMTQ5OUMyMTc0LjM3IC0yMjkuOTc3IDIxNDQuNSAtNTE2Ljg0IDIwNTEuNzcgLTczNS42NzlDMTk5Mi40OCAtODc0Ljg1OSAxOTEwLjg5IC0xMDAyLjQgMTgzOS4xMiAtMTEzNC44N0MxNzgwLjcyIC0xMjQzLjE3IDE3MzEuMjMgLTEzNTUuOTUgMTY4MS43NSAtMTQ2OC43MkMxNTg5LjQ2IC0xNjc5LjA2IDE0OTYuNzQgLTE4OTkuNjkgMTMzOS4zNyAtMjA3MC42NEMxMjY1LjgxIC0yMTUwLjMgMTE3OC44NyAtMjIxNS4xOSAxMDc5LjQ2IC0yMjU4LjZDMTA2OC4zMSAtMjI2My41MyAxMDU4LjA2IC0yMjU1LjQ3IDEwNTkuODQgLTIyNDMuMzlDMTA5NC4xNyAtMjAwNC40MSAxMTMxLjE3IC0xNzUwLjIyIDEyNzguNzQgLTE1NTEuNTJDMTM5Ny43NyAtMTM5MC44NSAxNTgyLjc4IC0xMjc4LjA4IDE3ODcuNCAtMTMwNC4wM0MxOTg0LjAxIC0xMzI4LjY1IDIxNDQuOTQgLTE0NjcuMzggMjI2NC40MiAtMTYxNi44NUMyMzk1LjQ5IC0xNzgwLjY1IDI0NzkuMyAtMTk3Mi4xOSAyNTgyLjI4IC0yMTUzLjg4QzI2OTYuNDEgLTIzNTUuMjcgMjg0MC44NSAtMjU1Ni42NSAzMDY3LjMyIC0yNjM2Ljc2QzMwNjIuNDIgLTI2MzkgMzA1Ny4wNyAtMjY0MC43OSAzMDUyLjE2IC0yNjQzLjAzQzMyODcuMTEgLTIyODQuMTEgMzQ1NC43MyAtMTg4Mi42OCAzNTQzLjg5IC0xNDYyLjQ2QzM1ODUuOCAtMTI2NC4yIDM2NTYuMjQgLTk5Ni4xMzggMzQ1OS4xOSAtODU4LjMwMUMzMjc3LjMgLTczMS4yMDQgMzA0OS4wNCAtNzk1LjY0NyAyODcwLjcyIC04OTMuNjU1QzIyMjAuMjggLTEyNTAuMzMgMTg2MC45NiAtMTk0Ni4yMyAxNDAzLjU2IC0yNTAxLjE2QzEzNDUuNjEgLTI1NzEuODcgMTI4NS40MiAtMjY0MC43OSAxMjIzLjAxIC0yNzA3LjAyQzExNjEuNDkgLTI3NzIuMzYgMTA5Ni44NSAtMjg0My4wNyAxMDEyLjU5IC0yODc4LjQyQzk0My40ODcgLTI5MDcuMDYgODY1LjkxNiAtMjkwMC44IDgwOC44NTMgLTI4NDkuMzNDNzU1LjM1NSAtMjgwMC41NSA3MjkuNDk5IC0yNzI2LjcxIDcxMi41NTggLTI2NTcuNzlDNjU5Ljk1MiAtMjQ0Mi45OCA2MzIuNzU4IC0yMjE4LjMzIDYwOC42ODQgLTE5OTguNTlDNTgyLjgyNyAtMTc2Ni4zMyA1NjguMTE1IC0xNTMzLjE3IDU2NC41NDkgLTEyOTkuNTZDNTYwLjk4MiAtMTA2NS45NSA1NjguMTE1IC04MzIuMzQ0IDU4Ni4zOTQgLTU5OS4xODRDNTk0LjQxOCAtNDk3LjE0OSA1OTkuNzY4IC0zOTIuNDI4IDYxOS4zODQgLTI5MS43MzZDNjMyLjMxMiAtMjI1LjUwMiA2NTYuODMyIC0xNTEuMjEzIDcxNC4zNDEgLTExMC4wNDFDNzgzLjg4NyAtNjAuMzY1NyA4NjYuODA4IC04Ni43Njk4IDkzNy4yNDYgLTExOS44ODZDMTAzNS4zMiAtMTY2LjQyOSAxMTMwLjI4IC0yMTkuNjg0IDEyMjUuNjggLTI3MS4xNDlDMTQxNC43MSAtMzczLjE4NSAxNjA1LjUxIC00NzYuMTE1IDE4MTAuNTkgLTU0My42OTJDMjEzMy44IC02NTAuMjAyIDI1MzYuMzYgLTY1Ni45MTUgMjgxMC41NCAtNDI0LjY1QzI5NDYuMDYgLTMwOS42MzYgMzA3Mi4yMyAtOTcuNTEwNSAyOTgwLjgzIDgwLjYwNEMyOTY3LjAxIDEwNy45MDMgMjk0Ni41MSAxMDEuNjM4IDI5MTguNDIgMTAxLjE5QzI4OTQuMzUgMTAwLjc0MyAyODcwLjcyIDEwMC4yOTUgMjg0Ni42NSA5OS40MDAxQzI3OTQuNDkgOTcuMTYyNiAyNzQyLjMzIDkzLjEzNSAyNjkwLjYxIDg3Ljc2NDZDMjU4OC41MiA3Ny4wMjM5IDI0ODYuODggNTkuNTcwNiAyMzg3LjAyIDM2Ljc0NjhDMTU2MS4zOCAtMTQ5Ljg3MSA4NjguNTkxIC02NjguMTAzIDE0OS45NDcgLTEwODguMzNDLTIxOC43MzggLTEzMDQuMDMgLTYwMy40NzEgLTE1MDEuMzkgLTEwMTMuNjIgLTE2MjQuNDZDLTEyMTEuMTEgLTE2ODMuNTMgLTE0MTMuOTUgLTE3MjQuNzEgLTE2MTkuOTIgLTE3MzkuNDhDLTE4MTEuNjEgLTE3NTIuOSAtMjAxNS43OSAtMTc1MC4yMiAtMjIwMy4wMyAtMTcwMi4zM0MtMjI3NS4yNiAtMTY4My45OCAtMjM0Ny40OCAtMTY1NS43OSAtMjQwNi43NyAtMTYwOS42OUMtMjQzMi42MyAtMTU4OS41NSAtMjQ1NS44MSAtMTU2Ni4yOCAtMjQ3NC4wOSAtMTUzOC45OEMtMjQ4Ny40NiAtMTUxOC44NSAtMjUxMy43NiAtMTQ3Ni43OCAtMjUwOS43NSAtMTQ1MS4yN0MtMjUwNi4xOCAtMTQzMS4xMyAtMjQ4NC43OSAtMTQwNS42MiAtMjQ3NC41MyAtMTM4OC4xN0MtMjQ2Mi45NCAtMTM2OC40OCAtMjQ1MC45IC0xMzQ4Ljc5IC0yNDM4Ljg3IC0xMzI5LjU0Qy0yNDEyLjEyIC0xMjg3LjAzIC0yMzg0LjAzIC0xMjQ1LjQxIC0yMzU0LjYxIC0xMjA0LjY4Qy0yMzAwLjY3IC0xMTI5Ljk1IC0yMjQyLjcxIC0xMDU3LjkgLTIxODEuNjQgLTk4OC41M0MtMTkxOC4xNiAtNjkwLjQ3OSAtMTYwMi41MyAtNDQ1LjY4NCAtMTI5Mi4yNSAtMTk5Ljk5M0MtNjEyLjgzMyAzMzQuMzUgMzUuMzczNSA5MDMuNiA2NTEuOTI4IDE1MDYuODZDMTI2NS44MSAyMTA3Ljg5IDE4NDguOTMgMjc0MC42OSAyMzk2LjgyIDM0MDMuMDJDMjUzMS40NiAzNTY1LjQ3IDI2NjMuODYgMzczMC4xNiAyNzk0LjQ5IDM4OTYuMTlDMjgwMC43MyAzODg5LjkzIDI4MDYuOTcgMzg4My42NiAyODEzLjIxIDM4NzcuNEMyNDIxLjc5IDM0NzEuNDkgMjExMC42MiAyOTg5Ljk2IDE5MDAuNjQgMjQ2NS45MUMxNzk2LjMyIDIyMDUuNDUgMTcxNi41MiAxOTM0LjcgMTY2NC4zNiAxNjU4LjU3QzE2MDUuMDcgMTM0My45NiAxNTgyLjc4IDEwMTMuMjQgMTY2Ni41OSA3MDEuMzJDMTczNS4yNCA0NDUuNzgzIDE4NzguNzkgMTg5LjggMjEwMS43IDM4LjUzNzFDMjE2Ni4zNCAtNS4zMjAzMSAyMjQ2LjE0IC00MS4xMjIzIDIzMjUuMDUgLTIwLjA4ODlDMjM5MS40OCAtMi4xODc3NCAyNDM2LjA2IDU2LjQzOCAyNDYxLjkxIDExNi44NTRDMjUxNC45NiAyNDAuMzcgMjUxMi4yOSAzOTAuNzM4IDI0ODYuODggNTIwLjUyQzI0MzIuOTQgNzk3Ljk4NSAyMjU3LjI5IDEwMzYuMDcgMjAyNS45MSAxMTkzLjE1QzE4MDAuMzMgMTM0Ni4yIDE1MTUuMDEgMTQ0Mi44NyAxMjQyLjE4IDE0NDkuMTNDMTEwMy4wOSAxNDUyLjI2IDk1Ny4zMDcgMTQyNC45NyA4NDcuNjM4IDEzMzMuNjdDNzQ0LjY1NiAxMjQ4LjE5IDY4NS44MDkgMTEyMS45OSA2NTQuMTU3IDk5My41NTJDNTg1LjA1NiA3MTIuMDYgNjIwLjcyMSA0MDEuNDc5IDcyNS45MzIgMTMzLjg2Qzc1NC4wMTggNjIuNzAzMSA3ODcuODk5IC01Ljc2NzgyIDgyNi4yMzkgLTcyLjAwMTVDODE3Ljc2OSAtNzQuMjM5IDgwOS43NDQgLTc2LjQ3NjYgODAxLjI3NCAtNzguNzE0NEM3NzYuMzA5IDUxMy44MDcgNjU1Ljk0IDExMDEuNDEgNDQ1LjUxOCAxNjU1Ljg5QzM5MS4xMjkgMTc5OS41NCAzMzAuMDUzIDE5NDAuOTYgMjYzLjYyOCAyMDc5LjI1QzIzNy4zMjUgMjEzNC4yOSAyMTAuNTc3IDIyMTMuNSAxNTYuMTg4IDIyNDcuOTZDODUuNzUgMjI5Mi43MSAzNC4wMzYxIDIyMTkuMzIgOS45NjI0IDIxNjEuMTRDLTQ3LjU0NjkgMjAyMS41MiAtODQuMTAzMyAxODY4LjQ2IC0xMjEuNTUxIDE3MjIuNTdDLTE2MC4zMzcgMTU3MS43NSAtMTkyLjg4MSAxNDE5LjE1IC0yMTkuMTg0IDEyNjYuMDlDLTI2Mi44NzMgMTAxMy42OSAtMjg4LjI4NCA3MTIuNTA4IC01MDYuMjg0IDU0Mi44OTZDLTUxMi41MjYgNTM3Ljk3NCAtNTE5LjIxMyA1MzcuOTc0IC01MjUuMDA5IDU0Mi44OTZDLTgxMy40NDcgNzc5LjYzNiAtMTA3Mi4wMiAxMDUwLjg0IC0xMjk1LjM3IDEzNTAuMjNDLTE0MDguMTYgMTUwMS4wNCAtMTUxMS4xNCAxNjU5LjAyIC0xNjA0Ljc2IDE4MjIuODFDLTE2NTEuNTcgMTkwNC43MSAtMTY5NS43IDE5ODcuOTUgLTE3MzYuNzIgMjA3Mi41M0MtMTc2Ni41OSAyMTMzLjg0IC0xNzkwLjIyIDIxOTguNzMgLTE3OTYuOSAyMjY3LjIxQy0xODAyLjI1IDIzMjQuMDQgLTE3OTQuMjMgMjM4Ny4xNCAtMTc1My42NiAyNDMwLjFDLTE2OTkuNzIgMjQ4Ny4zOSAtMTYxOC4xMyAyNDgxLjU3IC0xNTQ4LjE0IDI0NjUuMDFDLTEzMzQuMTUgMjQxNC40NCAtMTEyMS45NSAyMzUyLjIzIC05MDkuMjk2IDIyOTUuODVDLTQ4My41NDggMjE4Mi42MiAtNTcuODAwNSAyMDY5Ljg1IDM2Ny45NDcgMTk1Ni42MkM1NDQuMDQyIDE5MTAuMDggNzUzLjEyNiAxODI1LjUgOTM2LjM1NCAxODc3LjQxQzExMjEuODEgMTkzMC4yMiAxMTc3LjA5IDIxMzUuNjMgMTE5OC45NCAyMzA1LjY5QzEyMTcuMjEgMjQ0OC45IDEyMTIuMzEgMjYwOC4yMiAxMTQ2Ljc4IDI3MzkuNzlDMTExNS41NyAyODAyLjQ0IDEwNjkuNjUgMjg1Ni41OSAxMDA4LjEzIDI4OTAuNjFDOTE2LjczOCAyOTQxLjE4IDgxMC4xOSAyOTM2LjcgNzEwLjMyOSAyOTE5LjdDMzU1LjQ2NSAyODU4LjM4IDcuMjg3NiAyNzI0LjU4IC0zMDcuODk5IDI1NTIuMjhDLTYyNC40MjQgMjM3OS41MyAtOTE0LjY0NiAyMTU4LjkgLTExNjUuMTkgMTg5OS4zNEMtMTI5Ni4yNiAxNzYzLjI5IC0xNDEwLjgzIDE2MTUuMTYgLTE1MjYuNzQgMTQ2Ni41OUMtMTY0Mi4yMSAxMzE4LjkgLTE3NjUuMjUgMTE3My40NiAtMTkyMy4wNyAxMDY5LjE4Qy0yMDY1LjI4IDk3NS4yMDQgLTIyMzguMjUgOTEyLjk5OCAtMjQxMC4zNCA5MzYuMjdDLTI1NTIuOTkgOTU1LjUxMyAtMjY4OS44NiAxMDM4Ljc1IC0yNzY3LjQzIDExNjAuOTNDLTI4MDYuMjEgMTIyMS4zNCAtMjgyNy4xNyAxMjkwLjI2IC0yODI4LjUgMTM2Mi4zMUMtMjgyOC41IDEzNjkuOTIgLTI4MjIuMjYgMTM3NS4yOSAtMjgxNS4xMyAxMzc1Ljc0Qy0xNzc5LjUyIDE0MjQuMDcgLTg2OS4xNzMgODQ4LjEwNyAyOC42ODY1IDQxNC45MDRDMTQxLjkyMiAzNjAuMzA2IDI1NS42MDMgMzA3LjQ5OSAzNzEuMDY4IDI1Ny44MjRDNDcxLjM3NSAyMTQuODYxIDU4NC42MTEgMTU0Ljg5MyA2OTcuNCAxNjMuODQ0Qzg1MS42NSAxNzYuMzc0IDg0Ni43NDYgMzQ0LjE5NiA4MjQuNDU2IDQ2MC41NTJDODEzLjc1NyA1MTYuNDkyIDc5Ni44MTYgNTcxLjUzOCA3NzMuNjM0IDYyMy40NTFDNzQ4LjY2OCA2NzkuODM5IDcxMS42NjYgNzU0LjEyNyA2NDYuNTc4IDc3MS41ODFDNTc2LjE0IDc5MC4zNzcgNTQxLjgxMyA3MDQuMDA1IDUxNS41MSA2NTQuNzc3QzQ4Ni41MzIgNjAwLjE3OSA0NTkuNzg0IDU0My43OTIgNDM1LjI2NCA0ODYuOTU2QzM4OC45IDM3OC4yMDggMzUxLjQ1MiAyNjYuMzI3IDMxOS4zNTQgMTUyLjY1NkMyNTUuMTU3IC03NS4xMzQgMjEzLjY5NyAtMzA4LjI5NCAxNzEuMzQ1IC01NDEuMDA2QzE0OS41MDEgLTY2MC4wNDggMTI3LjY1NiAtNzc5LjUzNyAxMDIuNjkxIC04OTguMTNDODIuNjI5NCAtOTkzLjkwMSA2OS4yNTQ5IC0xMTA0LjQ0IDE3LjA5NTIgLTExODkuNDdDLTM4LjYzMDkgLTEyODEuMjEgLTEzMS44MDUgLTEyODguMzcgLTIyOC45OTEgLTEyNjguNjhDLTMzMy4zMTEgLTEyNDcuNjUgLTQzNy4xODQgLTEyMTkuOSAtNTM4LjgyOSAtMTE4OS4wMkMtNzQ2LjEzIC0xMTI1LjkyIC05NDkuNDE5IC0xMDQxLjc5IC0xMTMyLjY1IC05MjQuNTM0Qy0xMzAxLjYxIC04MTYuNjgxIC0xNDcwLjU3IC02NzQuODE2IC0xNTcyLjIxIC00OTguOTM5Qy0xNjYyLjI3IC0zNDMuNjQ4IC0xNjk3LjkzIC0xMjAuMzM0IC0xNTE4LjcyIC0xMy4zNzZDLTE0MzMuNTcgMzcuNjQxOCAtMTMyOS42OSA0Ny45MzQ4IC0xMjMyLjk1IDU1LjU0MjdDLTExMDkuOTEgNjQuOTQwOSAtOTg1LjUzIDYyLjcwMzEgLTg2Mi45MzIgNDkuMjc3M0MtNjI5LjMyOCAyMy4zMjEgLTQwMS4wNzQgLTQyLjkxMjQgLTE5MC4yMDYgLTE0OC4wODFDMy43MjA5NSAtMjQ0Ljc0NiAxNzkuMzcgLTM3Mi4yOSAzNTIuMzQ0IC01MDIuMDcyQzUyNC40MjYgLTYzMS40MDYgNjk0LjI4IC03NjQuMzIxIDg3OS43MzYgLTg3My45NjRDOTc1LjU4NSAtOTMwLjggMTA3NS40NSAtOTgwLjkyMiAxMTgwLjIxIC0xMDE5LjQxQzEyOTQuMzQgLTEwNjEuNDggMTQyMS44NCAtMTA5OS4wNyAxNTQzLjk5IC0xMDc1LjM1QzE2NTQuMTEgLTEwNTMuODcgMTc2Ny43OSAtOTYzLjkxNiAxNzY0LjIyIC04NDEuMjk1QzE3NjEuNTUgLTc1NC4wMjggMTY5Mi44OSAtNjkyLjcxNyAxNjEzLjk4IC02NjkuNDQ2QzE1MjkuNzMgLTY0NC4zODQgMTQzMy40MyAtNjU2LjQ2OCAxMzY0LjMzIC03MTIuNDA4QzEyODQuNTMgLTc3Ni40MDQgMTI0MS4yOSAtODczLjUxNiAxMjIxLjIzIC05NzEuNTI0QzExNzguODcgLTExNzYuNDkgMTIxNC45OCAtMTQxMi43OCAxMzEzLjUxIC0xNTk2LjcyQzEzMzUuOCAtMTYzOC4zMyAxMzYxLjY2IC0xNjc4LjE2IDEzOTEuOTcgLTE3MTMuOTdDMTQyMi4yOSAtMTc1MC4yMiAxNDY4LjY1IC0xODA2LjE2IDE1MTMuNjggLTE4MjMuNjFDMTUzMC4xNyAtMTgyOS44NyAxNTMxLjA2IC0xODMxLjY2IDE1NDIuMjEgLTE4MTMuNzZDMTU0OC45IC0xODAzLjAyIDE1NDkuNzkgLTE3ODcuODEgMTU0OS4zNCAtMTc3NS4yOEMxNTQ4IC0xNzQ4Ljg3IDE1MzYuODYgLTE3MjIuOTIgMTUyNC4zOCAtMTcwMC41NEMxNDk2LjI5IC0xNjUwLjQyIDE0NTEuMjYgLTE2MTEuOTMgMTQwOC45MSAtMTU3NC4zNEMxMjM1LjQ5IC0xNDE5Ljk0IDEwMzAuNDIgLTEzMDEuMzUgODExLjA4MiAtMTIyNy41MUM3NjEuMTUxIC0xMjEwLjk1IDcxMC4zMjkgLTExOTYuMTggNjU4LjYxNSAtMTE4NC4xQzU5MS4yOTggLTExNjguNDMgNTE4LjE4NSAtMTE1MS40MyA0NTAuNDIyIC0xMTcyLjkxQzM0NS42NTcgLTEyMDYuMDMgMjg4LjE0NyAtMTMxNi4xMiAyNjYuNzQ5IC0xNDE3LjI2QzIyMS4yNzYgLTE2MzYuMSAzMTUuNzg3IC0xODgwIDE4My4zODIgLTIwODAuMDRDMTMwLjc3NyAtMjE2MC4xNSA1MS40MjI2IC0yMjAxLjc3IC00Mi4xOTczIC0yMjE1LjE5Qy0xNTkuNDQ1IC0yMjMxLjc1IC0yODIuNDg5IC0yMjI5LjUxIC00MDAuNjI4IC0yMjIyLjhDLTgxNy40NiAtMjIwMC40MiAtMTI3My4wOCAtMjAyOC41OCAtMTQ0Ni45NCAtMTYxNS4wNkMtMTQ4Mi42MSAtMTUzMC40OCAtMTUyMS4zOSAtMTQxNS45MiAtMTQ3OS45MyAtMTMyNi40MUMtMTQ0NC4yNyAtMTI0OS40NCAtMTM1OC4yMyAtMTIxNy4yMSAtMTI4MC4yMSAtMTIwMi44OUMtMTA0Ni42MSAtMTE1OS4wNCAtNzk1LjYxNSAtMTE3OS4xOCAtNTYyLjkwMiAtMTIyMC44Qy01My43ODgzIC0xMzEyLjA5IDQxNC4zMTEgLTE1NDEuNjcgODczLjA0OSAtMTc3MS4yNUMxMTA1LjMyIC0xODg3LjE2IDEzMzcuMTQgLTIwMTEuMTIgMTU4MC4xIC0yMTAzLjc2QzE2OTcuMzUgLTIxNDguNTEgMTgyMC44NCAtMjE4MS42MyAxOTQ3LjQ1IC0yMTc0LjQ3QzIwNzAuMDUgLTIxNjcuNzYgMjE4Ni44NSAtMjEyMi41NiAyMjkyLjA2IC0yMDYwLjhDMjM5MS45MiAtMjAwMi4xNyAyNDgzLjMxIC0xOTI4Ljc4IDI1NjguOTEgLTE4NTAuNDZDMjY1Ni43MyAtMTc3MC4zNSAyNzQwLjU0IC0xNjc1LjQ4IDI3NjIuMzkgLTE1NTQuMkMyODAzLjg1IC0xMzIwLjU5IDI2MjcuMzEgLTExMTQuMjggMjQyNy41OSAtMTAyNS4yM0MyMjE4LjA2IC05MzEuMjQ3IDE5NjkuMjkgLTkyMS44NDkgMTc0My43MSAtOTQyLjQzNUMxNTEzLjIzIC05NjMuMDIxIDEyODUuODcgLTEwMjYuMTIgMTA3Ny4yMyAtMTEyNi4zN0M2NzEuMDk3IC0xMzIxLjQ5IDM0Ny44ODYgLTE2NTguMDMgMTYyLjQyOSAtMjA2OS4zQzcxLjkyOTkgLTIyNjkuNzkgMTYuMjAzOSAtMjQ4NS4wNSAtMi4wNzQ0NiAtMjcwNC4zNEMtNS4xOTUwNyAtMjcyMS43OSAtMzEuOTQzOCAtMjcyMS43OSAtMzAuNjA2MiAtMjcwNC43OFoiIGZpbGw9IiNFNjAwN0EiLz4KPC9nPgo8cGF0aCBkPSJNNTc5LjY2MSAxMTUxSDc1MC44MjdMODA1LjM5OCA5NTMuMTE4QzgxMi45MjMgOTI1LjgzMyA4NTEuMjkgOTI1Ljg1IDg1OC43OTEgOTUzLjE0MUw5MTMuMTczIDExNTFIMTA4NC4wMUwxMjE1IDY0NUgxMDU0LjYxTDEwMTMuNjUgODQ1LjgxMUMxMDA3LjcgODc0Ljk3MiA5NjYuNjgxIDg3NS43NzggOTU5LjYxIDg0Ni44NzJMOTEwLjIzMyA2NDVINzUzLjc2N0w3MDUuNjY1IDg0OC4xMjZDNjk4Ljc5NyA4NzcuMTI4IDY1Ny42OSA4NzYuNTY2IDY1MS42MDMgODQ3LjM4N0w2MzcuMTU4IDc3OC4xMzhDNjIwLjk3MyA3MDAuNTQ3IDU1My4xMDIgNjQ1IDQ3NC40OCA2NDVINDQ5TDU3OS42NjEgMTE1MVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXIiIHgxPSItMjMyLjQyOSIgeTE9IjgxNi4xNjkiIHgyPSIyNzEzLjY5IiB5Mj0iODEzLjU5MiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjRjc5NDIwIiBzdG9wLW9wYWNpdHk9IjAuOTIiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQzRDNEM0IiBzdG9wLW9wYWNpdHk9IjAiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K";export{M as a,N as b,j as c,I as d,T as e,D as f,g,L as h,z as i,A as j};//# sourceMappingURL=chunk-VGIE4R7S.js.map
2
+ //# sourceMappingURL=chunk-VGIE4R7S.js.map