Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | 20x 1x 1x 1x 1x | import { AbstractWalletPlugin, CallbackPayload, Checksum256, LoginContext, Logo, PermissionLevel, PromptElement, PublicKey, ResolvedSigningRequest, TransactContext, WalletPluginConfig, WalletPluginLoginResponse, WalletPluginMetadata, WalletPluginSignResponse, } from '@wharfkit/session' import { createIdentityRequest, verifyLoginCallbackResponse, waitForCallback, } from '@wharfkit/protocol-esr' export class WalletPluginPayCash extends AbstractWalletPlugin { chain: Checksum256 | undefined auth: PermissionLevel | undefined requestKey: PublicKey | undefined privateKey: unknown signerKey: PublicKey | undefined channelUrl: string | undefined channelName: string | undefined buoyUrl: string id = 'paycash' constructor(options?: {buoyUrl?: string}) { super() this.buoyUrl = options?.buoyUrl || 'https://cb.anchor.link' } readonly config: WalletPluginConfig = { requiresChainSelect: false, requiresPermissionSelect: false, } readonly metadata: WalletPluginMetadata = WalletPluginMetadata.from({ name: 'PayCash', description: 'PayCash wallet plugin for WharfKit SessionKit', logo: Logo.from({ dark: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA2NSA2NyI+PHBhdGggZmlsbD0idXJsKCNhKSIgZD0iTTYzIDguNXY0MS4yYzAgMy43LTIuOCA2LjctNi40IDcuMmgtNC41djRjMCAyLjgtMSA0LjgtMy44IDUuMS0xIC4yLTIuMiAwLTMuNi0uMkw3LjIgNTdDMyA1Ni4xLjMgNTMuNS4yIDUwTDAgNDlWN2MuNC0zLjQgMy4yLTYgNi43LTZoNDkuMWM0IDAgNy4xIDMuNCA3LjEgNy40WiIvPjxwYXRoIGZpbGw9InVybCgjYikiIGQ9Ik01MS41IDE4LjNjLTEtMi42LTMtNC43LTUuNi01LjNMNy42IDEuNWMtLjUtLjItMS0uMy0xLjUtLjJBNi41IDYuNSAwIDAgMCAwIDd2NDIuN0MuNSA1My41IDMuMiA1NiA3LjQgNTdsMTUuOSAzLjcuOS4yIDIwLjYgNC44YzEuNC4zIDIuNy40IDMuNi4zIDIuOC0uNCAzLjgtMi40IDMuOC01LjFWMjEuNGE4IDggMCAwIDAtLjYtMy4xWiIvPjxwYXRoIGZpbGw9InVybCgjYykiIGQ9Ik01MS41IDE4LjNjLTEtMi42LTMtNC43LTUuNi01LjNMNy42IDEuNWMtLjUtLjItMS0uMy0xLjUtLjJBNi41IDYuNSAwIDAgMCAwIDd2NDIuN0MuNSA1My41IDMuMiA1NiA3LjQgNTdsMTUuOSAzLjcuOS4yIDIwLjYgNC44YzEuNC4zIDIuNy40IDMuNi4zIDIuOC0uNCAzLjgtMi40IDMuOC01LjFWMjEuNGE4IDggMCAwIDAtLjYtMy4xWiIvPjxwYXRoIGZpbGw9InVybCgjZCkiIGQ9Ik02NC4xIDcuM3Y0MS4yYzAgMy42IDAgNC00IDdhNy4zIDcuMyAwIDAgMCAyLjgtNS44VjguNWMwLTQtMy4zLTcuMy03LjMtNy4zSDEyLjFMNDcgMTEuNmE4LjUgOC41IDAgMCAxIDYuMSA4LjR2MzkuN2MwIDIuNSAwIDQtMi45IDUuNS40LS4yLjctLjYgMS0xIC41LS45LjctMiAuNy0zLjNWMjEuM2MwLTEtLjItMi4xLS42LTMuMS0uOS0yLjYtMy00LjYtNS42LTUuM0w3LjQgMS40Yy0uMy0uMS0uOC0uMi0xLjMtLjEtLjYgMC0xIDAtMS42LjNhNC41IDQuNSAwIDAgMC0uOS4zcy0uMiAwLS4yLjJIM2wtLjEuMS0uNC40Yy44LTEgMS44LTEuOCAzLTIuM2guMUM2LjUuMSA3LjEgMCA4IDBoNDljNCAwIDcuMiAzLjIgNy4yIDcuM1oiLz48bWFzayBpZD0iZiIgd2lkdGg9IjQ3IiBoZWlnaHQ9IjU3IiB4PSIxMiIgeT0iMSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSI+PHBhdGggZmlsbD0idXJsKCNlKSIgZD0iTTU4LjcgMjAuMXYzNi4zYTYgNiAwIDAgMS0yLjEuNmgtMy40VjIwLjFhOC41IDguNSAwIDAgMC02LjEtOC40TDEyLjIgMS4zbDM5LjUgMTAuNGE5IDkgMCAwIDEgNi40IDUuM2MuNCAxIC42IDIgLjYgMy4xWiIvPjwvbWFzaz48ZyBtYXNrPSJ1cmwoI2YpIj48cGF0aCBmaWxsPSJ1cmwoI2cpIiBkPSJNNTguNyAyMC4xdjM2LjNhNiA2IDAgMCAxLTIgLjZoLTMuNFYyMC4xYzAtMS0uMi0yLjEtLjYtMy4xLS45LTIuNi0zLTQuNi01LjYtNS4zTDEyLjMgMS4zbDM5LjQgMTAuNGE5IDkgMCAwIDEgNi40IDUuM2MuNCAxIC42IDIgLjYgMy4xWiIgb3BhY2l0eT0iLjMiLz48L2c+PHBhdGggZmlsbD0iIzE2MTYxNiIgZD0ibTEzLjIgNDMuMyAxLjQgMWExMCAxMCAwIDAgMCA0IDJjMy4yIDEgNi4yLjkgOC44LS41IDIuMS0xLjIgMy42LTMgNC4yLTUuNi41LTIuNCAwLTUtMS41LTcuNXYtLjJsLjEuMWMyIDIgMyA0LjEgMy42IDYuNmE4LjggOC44IDAgMCAxLTcuNSAxMC4xYy0xLjcuMy0zLjQuMi01LS4zLTIuNi0uNy00LjktMi02LjgtNC4yYTUgNSAwIDAgMS0xLjMtMS41WiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Im0yMy4xIDI5LjguOC0uOGE3LjQgNy40IDAgMCAxIDUuMS0xLjZjMi4xLjIgNCAxIDYgMi40QTE2IDE2IDAgMCAxIDQxLjUgNDNjLS4xIDIuNS0xIDQuNi0yLjYgNi4xbC0xLjIgMWgtLjJsLjItLjJhOC41IDguNSAwIDAgMCAxLjctNGMuNC0zLjQtLjQtNi44LTIuNS0xMC4xYTE0LjYgMTQuNiAwIDAgMC02LTUuNGMtMi43LTEuNC01LjMtMS42LTcuNy0uNCAwLS4yIDAtLjItLjItLjJaIi8+PHBhdGggZmlsbD0iIzE2MTYxNiIgZD0iTTI1LjIgNTEuN2E5IDkgMCAwIDAgNy44LTMuOCA5LjUgOS41IDAgMCAwIDEuNi00Yy41LTIuOCAwLTUuNS0xLjUtOC4zYTEyLjEgMTIuMSAwIDAgMC02LjItNS42bC0uMS0uMWguNWwuNS4xYzIuOS42IDUuMiAyIDcuMiA0LjYgMS4zIDEuNiAyIDMuNCAyLjQgNS4zIDEuMiA1LjMtMS4zIDEwLjMtNS42IDExLjktMS44LjctMy44LjgtNS45LjJsLS43LS4zWiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Im0zOC44IDI1LjctMS40LTEuMmMtMS4zLS45LTIuNi0xLjYtNC0yYTExIDExIDAgMCAwLTguNy42IDcuNyA3LjcgMCAwIDAtNC4yIDUuNWMtLjUgMi41IDAgNSAxLjUgNy42bC4xLjItLjUtLjVhMTIgMTIgMCAwIDEtMy4zLTYuMmMtLjMtMS44IDAtMy40LjYtNWE4LjQgOC40IDAgMCAxIDYuMy01YzEuOC0uNCAzLjctLjMgNS43LjIgMi45LjggNS40IDIuNCA3LjQgNWwuNS44WiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Im0yOC45IDM5LjItLjkuOGE3IDcgMCAwIDEtNSAxLjVjLTItLjItNC4xLTEtNi0yLjNhMTYuNSAxNi41IDAgMCAxLTYuMi05Yy0uNC0xLjctLjYtMy4zLS40LTQuOS4yLTIuMiAxLTQuMSAyLjUtNS41bDEuMy0xdi4yYy0xIDEuNC0xLjcgMy0xLjggNC45LS4zIDQuMiAxLjIgOC4yIDQuNSAxMS44YTEzIDEzIDAgMCAwIDUuMSAzLjUgOCA4IDAgMCAwIDYuNy0uMWguMloiLz48cGF0aCBmaWxsPSIjMTYxNjE2IiBkPSJNOC42IDI5LjdhMTYgMTYgMCAwIDAgNS4xIDguNiAxNiAxNiAwIDAgMCA1IDMuMmMyLjcgMSA1LjIgMS4zIDcuNS40IDIuNS0uOCA0LTIuNiA0LjUtNS40di0uMWwuMi41di41YzAgMi4zLS41IDQuMi0xLjggNS43YTYuOCA2LjggMCAwIDEtNC4zIDJjLTEuNy4zLTMuNS4xLTUuMy0uNWExNi44IDE2LjggMCAwIDEtOC45LTcuMyAxMiAxMiAwIDAgMS0yLTd2LS42Wm0xMi42IDIuOS0uMS0xLjFjLS4xLTIuMy41LTQuMiAxLjgtNS42IDEuMi0xLjIgMi42LTIgNC4zLTIuMiAxLjctLjIgMy41IDAgNS4zLjZhMTcgMTcgMCAwIDEgOC40IDYuNWMxLjIgMS43IDIgMy43IDIuMyA1LjZhOSA5IDAgMCAxIC4xIDIuN3YuMmMtLjEtLjQtLjMtLjctLjMtMS4xYTE3LjggMTcuOCAwIDAgMC05LjMtMTAuNSAxMC44IDEwLjggMCAwIDAtNy41LS44IDYuNiA2LjYgMCAwIDAtNSA1LjVjLjEgMCAuMS4xIDAgLjIuMSAwIC4xIDAgMCAwWiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Ik0yNS4yIDM5aC0xYy0yLjMtLjQtNC4zLTEuNi02LjEtMy4zYTEyLjkgMTIuOSAwIDAgMS0zLjgtMTAuNGMuNS00IDIuNS02LjYgNS45LThhOC43IDguNyAwIDAgMSA2LjUgMCA5IDkgMCAwIDAtNCAuOCA4LjYgOC42IDAgMCAwLTUgNS40Yy0uOCAyLjQtLjkgNS4xLjIgOCAxLjIgMy4yIDMuMyA1LjYgNi4zIDcuMi40IDAgLjcuMiAxIC40WiIvPjxnIG9wYWNpdHk9Ii41Ij48ZyBvcGFjaXR5PSIuNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI0LjQgNDkuOEExNCAxNCAwIDAgMSAxNCA0NS4xbC0uOS0xLS40LS41LS4yLS4zLjUtLjJoLjJsLjUuNSAxIC44YTEzLjEgMTMuMSAwIDAgMCA3LjcgMi41YzEuNiAwIDMuMi0uNCA0LjYtMS4yIDIuMi0xLjEgMy41LTMgNC01LjQuNi0yLjMgMC00LjgtMS40LTcuMmwtLjEtLjMtLjItMSAuNy43LjIuMWMyIDIgMy4yIDQuMiAzLjYgNi43YTguNyA4LjcgMCAwIDEtNy43IDEwLjVoLTEuOFoiIG9wYWNpdHk9Ii41Ii8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTMwIDMyLjV2LjJjMiAxLjkgMy4xIDQgMy42IDYuNi40IDIuMiAwIDQtMSA1LjdhOC44IDguOCAwIDAgMS02LjUgNC40bC0xLjcuMWExMyAxMyAwIDAgMS0xMC00LjZMMTMgNDMuM2wxLjUgMS4xYTE0IDE0IDAgMCAwIDcuOCAyLjZjMS44IDAgMy40LS40IDUtMS4yIDIuMS0xLjIgMy42LTMgNC4yLTUuNS41LTIuNSAwLTUtMS41LTcuNmwtLjItLjJabS0xLjEtMS43LjQgMS45LjEuNGMxLjUgMi4zIDIgNC43IDEuNCA3YTcgNyAwIDAgMS0zLjkgNS4yIDEwIDEwIDAgMCAxLTQuNSAxLjEgMTIuMyAxMi4zIDAgMCAxLTcuNS0yLjVsLTEtLjgtLjQtLjQtLjMtLjItLjQuMi0uNi40LjQuNS40LjQgMSAxLjJBMTUgMTUgMCAwIDAgMjQuNCA1MGwxLjgtLjJhOSA5IDAgMCAwIDctNC42IDkgOSAwIDAgMCAxLTYuMmMtLjQtMi41LTEuNy00LjgtMy42LTYuOWwtLjItLjEtMS41LTEuM1oiIG9wYWNpdHk9Ii41Ii8+PC9nPjxnIG9wYWNpdHk9Ii41Ij48cGF0aCBmaWxsPSIjZmZmIiBkPSJtMzcuNyA1MC4zLS41LS4xLjQtLjZhOC4yIDguMiAwIDAgMCAxLjYtMy45Yy41LTMuMy0uNC02LjYtMi41LTkuOWExNC4zIDE0LjMgMCAwIDAtNS44LTUuMmMtMS41LS44LTMtMS4yLTQuMy0xLjItMSAwLTIuMS4zLTMuMS43bC0uNC4xLS4yLS4xLS4yLS4yLjItLjMuMy0uMi42LS42YzEuMy0xIDIuOS0xLjYgNC43LTEuNmguNmMyIC4xIDQuMSAxIDYuMSAyLjRBMTYuNSAxNi41IDAgMCAxIDQyIDQzYy0uMSAyLjctMSA0LjgtMi43IDYuM2wtLjkuNy0uNC4zaC0uM1oiIG9wYWNpdHk9Ii41Ii8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTI4LjUgMjcuNWguNWMyLjEuMSA0IDEgNiAyLjNhMTYgMTYgMCAwIDEgNi42IDEzLjNjLS4xIDIuNS0xIDQuNS0yLjYgNi4xbC0xLjIgMWgtLjFsLjEtLjNhOC41IDguNSAwIDAgMCAxLjctNGMuNC0zLjQtLjQtNi43LTIuNS0xMGExNC42IDE0LjYgMCAwIDAtNi01LjVjLTEuNS0uOC0zLTEuMS00LjQtMS4xYTggOCAwIDAgMC0zLjMuN2gtLjFsLjctLjhhNi4zIDYuMyAwIDAgMSA0LjYtMS43Wm0wLS43YTcuNiA3LjYgMCAwIDAtNS42IDIuM2wtLjIuMy0uNC40LjQuNC4zLjQuNC0uMmguMmMxLS41IDItLjcgMy0uNyAxLjMgMCAyLjcuNCA0LjIgMSAyLjIgMS4zIDQuMiAzIDUuNiA1LjNhMTQgMTQgMCAwIDEgMi41IDkuNiA4IDggMCAwIDEtMS41IDMuOGwtLjIuMi0uNi44LjkuM2guMmwuNC0uMi40LS4yYTggOCAwIDAgMCAxLS43IDkuMSA5LjEgMCAwIDAgMi43LTYuNWMwLTEuNS0uMi0zLS41LTQuNWExOCAxOCAwIDAgMC02LjQtOS4zYy0yLTEuNS00LjEtMi4zLTYuMy0yLjVoLS41WiIgb3BhY2l0eT0iLjUiLz48L2c+PGcgb3BhY2l0eT0iLjUiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yOC42IDUyLjZjLTEgMC0xLjggMC0yLjgtLjRoLS40bC0yLjItLjdoMi4yYzMuMiAwIDUuNi0xLjIgNy40LTMuOGE5LjggOS44IDAgMCAwIDEuNi00IDEyIDEyIDAgMCAwLTEuNC04IDEyIDEyIDAgMCAwLTYtNS40aC0uMXMtLjIgMC0uMy0uMmwtLjQtLjVIMjhhMTMuNCAxMy40IDAgMCAxIDkuOSAxMC4yYzEuMiA1LjQtMS4zIDEwLjYtNS44IDEyLjNhMTQgMTQgMCAwIDEtMy40LjVaIiBvcGFjaXR5PSIuNSIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0yNi44IDI5LjloLjVsLjUuMWExMi45IDEyLjkgMCAwIDEgOS42IDkuOWMxLjIgNS4zLTEuMyAxMC4zLTUuNiAxMS45LTEgLjQtMiAuNi0zLjIuNi0uOSAwLTEuOC0uMi0yLjctLjRsLS43LS4yaC4xYzMuNCAwIDUuOS0xLjMgNy43LTMuOWE5LjUgOS41IDAgMCAwIDEuNi00Yy41LTIuNyAwLTUuNS0xLjUtOC4zYTEyIDEyIDAgMCAwLTYuMi01LjVsLS4xLS4yWm0tMS4zLS43LjggMSAuMy4zaC4yYTEyIDEyIDAgMCAxIDUuOCA1LjMgMTIgMTIgMCAwIDEgMS41IDggOS41IDkuNSAwIDAgMS0xLjUgMy43IDguMiA4LjIgMCAwIDEtNy4yIDMuNmgtNC4ybDMuOCAxLjJoLjJsLjYuMmE5LjcgOS43IDAgMCAwIDYuMi0uMmM0LjYtMS43IDcuMi03IDYtMTIuNmExMy4yIDEzLjIgMCAwIDAtMTAuMS0xMC4zaC0xLjFsLTEuMy0uMloiIG9wYWNpdHk9Ii41Ii8+PC9nPjxnIG9wYWNpdHk9Ii41Ij48cGF0aCBmaWxsPSIjZmZmIiBkPSJtMjEuOCAzNi42LS4yLS4yLS4zLS4zYy0xLjgtMi0zLTQtMy4zLTYuNGE4LjggOC44IDAgMCAxIDctMTAuMyAxMS44IDExLjggMCAwIDEgNS44LjJjMy4xLjggNS42IDIuNiA3LjYgNWwuNC42LjUuNi0uNi4xaC0uMWwtLjUtLjQtMS0uN2ExMy4xIDEzLjEgMCAwIDAtNy43LTIuNiAxMCAxMCAwIDAgMC00LjggMS4yIDcuNyA3LjcgMCAwIDAtNCA1LjNBMTAgMTAgMCAwIDAgMjIgMzZsLjEuMy4yIDEtLjUtLjdaIiBvcGFjaXR5PSIuNSIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0yNy41IDE5LjRBMTMuNyAxMy43IDAgMCAxIDM4LjIgMjVsLjYuOC0xLjQtMS4yYTEzLjkgMTMuOSAwIDAgMC03LjgtMi42Yy0xLjggMC0zLjQuNS01IDEuMmE3LjcgNy43IDAgMCAwLTQuMSA1LjVjLS41IDIuNSAwIDUgMS40IDcuNmwuMi4yLS42LS41YTEyIDEyIDAgMCAxLTMuMi02LjIgOC40IDguNCAwIDAgMSA2LjktMTBsMi4zLS4zWm0wLS42Yy0uOCAwLTEuNy4xLTIuNS4zYTguOSA4LjkgMCAwIDAtNi43IDUuNCA5IDkgMCAwIDAtLjUgNS4zIDEyIDEyIDAgMCAwIDMuNCA2LjZsLjMuMy4yLjIgMS4zIDEuNC0uMy0ydi0uMWwtLjEtLjItLjEtLjJhMTAgMTAgMCAwIDEtMS40LTdjLjUtMi4zIDEuOC00IDMuOS01LjEgMS40LS44IDMtMS4yIDQuNS0xLjJhMTIuMyAxMi4zIDAgMCAxIDcuNSAyLjZsMSAuN2MwIC4xLjIuMy40LjNsLjIuMmguM2wxLS4yLS42LS44LS4yLS4zLS40LS41Yy0yLTIuNi00LjYtNC40LTcuOC01LjMtMS0uMi0yLjItLjQtMy40LS40WiIgb3BhY2l0eT0iLjUiLz48L2c+PGcgb3BhY2l0eT0iLjUiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMy41IDQxLjhoLS42YTExIDExIDAgMCAxLTYtMi40IDE2LjUgMTYuNSAwIDAgMS02LjMtOS4xYy0uNC0xLjctLjYtMy4zLS40LTVhOC41IDguNSAwIDAgMSAyLjctNS43bC44LS42LjQtLjMuMi0uMS40LjQtLjMuNGE5LjIgOS4yIDAgMCAwLTEuNyA0LjcgMTYgMTYgMCAwIDAgNC40IDExLjUgMTIuOCAxMi44IDAgMCAwIDguNCA0LjFjMSAwIDIuMS0uMyAzLjEtLjdsLjMtLjEuMi4xLjIuMi0uMi4zLS4yLjItLjYuNmMtMS40LjktMyAxLjUtNC44IDEuNVoiIG9wYWNpdHk9Ii41Ii8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTE0LjIgMTguOGMwIC4xIDAgLjEgMCAwdi4yYTkgOSAwIDAgMC0xLjcgNC45IDE1IDE1IDAgMCAwIDQuNCAxMS43IDEzIDEzIDAgMCAwIDUuMiAzLjZjMS4yLjQgMi40LjYgMy41LjZhOCA4IDAgMCAwIDMuMi0uN2guMmwtLjkuOGE2LjggNi44IDAgMCAxLTQuNSAxLjZoLS41Yy0yLS4yLTQuMS0xLTYtMi4zYTE2LjUgMTYuNSAwIDAgMS02LjItOWMtLjQtMS43LS41LTMuMy0uNC00LjlhOCA4IDAgMCAxIDIuNi01LjVsMS4xLTFabS4xLS44LS41LjQtLjQuMi0uOS44YTkgOSAwIDAgMC0yLjcgNmMtLjIgMS42IDAgMy4yLjQgNWExNyAxNyAwIDAgMCA2LjQgOS4zIDEyIDEyIDAgMCAwIDYuMyAyLjRoLjZjMS45IDAgMy41LS42IDQuOC0xLjhsLjYtLjZjLjEgMCAuMiAwIC4zLS4ybC40LS40LS4zLS41aC0uMWwtLjItLjItLjQuMmgtLjJjLTEgLjUtMS45LjctMyAuN2ExMi4zIDEyLjMgMCAwIDEtOC4xLTRBMTUuNCAxNS40IDAgMCAxIDEzIDIzLjhhOCA4IDAgMCAxIDEuNi00LjVoLjF2LS4ybC4zLS40LS4zLS4zLS40LS41WiIgb3BhY2l0eT0iLjUiLz48L2c+PGcgb3BhY2l0eT0iLjUiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMy4zIDQ1LjZjLTEuMyAwLTIuNi0uMi00LS43YTE2LjkgMTYuOSAwIDAgMS05LTcuNCAxMi42IDEyLjYgMCAwIDEtMi03LjdsLjMtMi4zLjQgMmMuNiAzLjIgMi4zIDYgNSA4LjVhMTYgMTYgMCAwIDAgNC44IDMuMWMxLjYuNiAzIDEgNC41IDEgMSAwIDEuOS0uMiAyLjgtLjVhNi4zIDYuMyAwIDAgMCA0LjMtNS4yYzAtLjIgMC0uMy4yLS40bC40LS4ydi42bC4xLjR2LjZjLjIgMi4zLS41IDQuMy0xLjkgNS45YTcuNSA3LjUgMCAwIDEtNC40IDIuMmwtMS41LjFaIiBvcGFjaXR5PSIuNSIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik04LjYgMjkuN2ExNiAxNiAwIDAgMCA1LjEgOC42IDE2IDE2IDAgMCAwIDUgMy4yYzEuNi42IDMuMSAxIDQuNiAxIDEgMCAyLS4yIDMtLjUgMi40LS45IDQtMi42IDQuNC01LjR2LS4ybC4xLjYuMS41YTggOCAwIDAgMS0xLjggNS42IDYuOCA2LjggMCAwIDEtNC4zIDIuMSAxMC43IDEwLjcgMCAwIDEtNS4zLS41IDE2LjggMTYuOCAwIDAgMS04LjktNy4zIDExLjkgMTEuOSAwIDAgMS0yLTd2LS43Wm0tLjItNC4yTDggMjkuNnYuOGMwIDIuNC42IDQuOCAyIDcuMiAyLjMgMy43IDUuNCA2LjIgOS4zIDcuNiAxLjQuNCAyLjcuNyA0IC43bDEuNi0uMWMyLS4zIDMuNC0xIDQuNi0yLjNhOC4zIDguMyAwIDAgMCAyLTYuMXYtMS4ybC0uMi0uOS0uOC41LS4zLjV2LjFhNiA2IDAgMCAxLTQuMSA1Yy0uOS4zLTEuOC41LTIuNy41YTEyIDEyIDAgMCAxLTQuNC0xYy0xLjctLjYtMy4zLTEuNy00LjgtM2ExNS40IDE1LjQgMCAwIDEtNC44LTguM2wtMS00LjFaIiBvcGFjaXR5PSIuNSIvPjwvZz48ZyBvcGFjaXR5PSIuNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTQzIDM5LS4yLS43YTE1IDE1IDAgMCAwLTIuOS01LjUgMTYuOSAxNi45IDAgMCAwLTYuMi00LjggMTEuNSAxMS41IDAgMCAwLTcuMy0uOCA2LjMgNi4zIDAgMCAwLTQuOCA1LjN2LjJsLS4xLjEtLjUuNXYtLjZsLS4xLS40di0uN2MtLjItMi40LjUtNC40IDEuOS01LjkgMS4xLTEuMiAyLjYtMiA0LjQtMi4ybDEuNS0uMmMxLjMgMCAyLjYuMyA0IC44IDMuNCAxLjIgNi4zIDMuNCA4LjUgNi41IDEuMyAxLjkgMi4xIDMuOCAyLjQgNS44LjIgMSAuMiAxLjkgMCAyLjhsLS4yIDEuNEw0MyAzOVoiIG9wYWNpdHk9Ii41Ii8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTI4LjcgMjMuNmMxLjMgMCAyLjUuMiAzLjkuN2ExNyAxNyAwIDAgMSA4LjMgNi40YzEuMyAxLjggMiAzLjcgMi40IDUuN2E5IDkgMCAwIDEgMCAyLjZ2LjJjMC0uNC0uMi0uNy0uMy0xLjEtLjUtMi0xLjUtNC0yLjktNS42LTEuNy0yLjEtNC0zLjgtNi40LTUtMS43LS43LTMuMy0xLjEtNS0xLjEtLjggMC0xLjcuMS0yLjUuM2E2LjYgNi42IDAgMCAwLTUgNS42di4xbC0uMi0xYy0uMS0yLjMuNS00LjIgMS45LTUuNyAxLTEuMiAyLjUtMS45IDQuMi0yaDEuNlptMC0uNi0xLjUuMWE3LjYgNy42IDAgMCAwLTQuNiAyLjQgOC4xIDguMSAwIDAgMC0yLjEgNnYuOGwuMS40LjIgMS40LjktMS4xLjEtLjF2LS4ybC4xLS4yYy42LTIuNyAyLTQuNCA0LjYtNS4xYTkgOSAwIDAgMSAyLjQtLjQgMTYuNSAxNi41IDAgMCAxIDEwLjkgNS45IDEzIDEzIDAgMCAxIDIuOCA1LjRsLjIuN3YuNGwuNiAyLjUuNi0yLjV2LS4yYTcgNyAwIDAgMCAwLTIuOWMtLjMtMi4xLTEuMi00LTIuNS02YTE3LjggMTcuOCAwIDAgMC04LjYtNi42Yy0xLjUtLjQtMy0uNy00LjItLjdaIiBvcGFjaXR5PSIuNSIvPjwvZz48ZyBvcGFjaXR5PSIuNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI1LjIgMzkuM2gtLjNsLS44LS4xYTEyIDEyIDAgMCAxLTYuMi0zLjRBMTMuMyAxMy4zIDAgMCAxIDE0LjEgMjVjLjUtNC4xIDIuNi03IDYtOC4zYTEwIDEwIDAgMCAxIDYtLjJsLjkuMyAxLjUuNmgtMi4xYTguNSA4LjUgMCAwIDAtOC4zIDZjLS44IDIuNC0uOCA1IC4yIDcuN2ExMi4zIDEyLjMgMCAwIDAgNi44IDcuM2wuNC4ydi41bC0uMy4xWiIgb3BhY2l0eT0iLjUiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMjMuMyAxNi42YTkuOSA5LjkgMCAwIDEgMy41LjdoLS40YTguOCA4LjggMCAwIDAtOC42IDYuMmMtLjkgMi40LTEgNSAuMSA4YTEzIDEzIDAgMCAwIDYuNCA3LjFsLjkuNGgtMWMtMi4zLS40LTQuNC0xLjYtNi4xLTMuM2ExMi45IDEyLjkgMCAwIDEtMy44LTEwLjRjLjUtNCAyLjQtNi43IDUuOS04IDEtLjUgMi0uNyAzLjEtLjdabTAtLjZhOS44IDkuOCAwIDAgMC05LjYgOSAxNCAxNCAwIDAgMCA0IDExYzEuOSAxLjkgNCAzIDYuNCAzLjVsLjcuMWguM2wuNy4xdi0xbC0uMy0uMi0uMy0uMS0uNi0uM2ExMiAxMiAwIDAgMS02LTYuOSAxMSAxMSAwIDAgMS0uMi03LjYgOC42IDguNiAwIDAgMSA0LjYtNSA4IDggMCAwIDEgMy40LS44aC40bDMuNS4yLTMuMy0xLjMtLjgtLjNjLTEtLjMtMi0uNC0yLjktLjRaIiBvcGFjaXR5PSIuNSIvPjwvZz48L2c+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iNC42IiB4Mj0iNTguNCIgeTE9IjU1LjkiIHkyPSIyLjMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjQkY5QjJGIi8+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjQzdBNjNCIi8+PHN0b3Agb2Zmc2V0PSIuMSIgc3RvcC1jb2xvcj0iI0REQzY1RiIvPjxzdG9wIG9mZnNldD0iLjIiIHN0b3AtY29sb3I9IiNGOUYwOTEiLz48c3RvcCBvZmZzZXQ9Ii40IiBzdG9wLWNvbG9yPSIjRkZERDczIi8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iI0ZGREMzOCIvPjxzdG9wIG9mZnNldD0iLjciIHN0b3AtY29sb3I9IiNCRjlCMkYiLz48c3RvcCBvZmZzZXQ9Ii44IiBzdG9wLWNvbG9yPSIjOTY2NTI4Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjODU0RTI0Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImIiIHgxPSIwIiB4Mj0iNTIuMSIgeTE9IjMzLjciIHkyPSIzMy43IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzg1NEUyNCIvPjxzdG9wIG9mZnNldD0iLjIiIHN0b3AtY29sb3I9IiM5NjY1MjgiLz48c3RvcCBvZmZzZXQ9Ii4zIiBzdG9wLWNvbG9yPSIjQkY5QjJGIi8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iI0ZGREMzOCIvPjxzdG9wIG9mZnNldD0iLjYiIHN0b3AtY29sb3I9IiNGRkRENzMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNCRjlCMkYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9IjQiIHgyPSI0Ny42IiB5MT0iNTYuNSIgeTI9IjEzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzg1NEUyNCIvPjxzdG9wIG9mZnNldD0iLjIiIHN0b3AtY29sb3I9IiM5NjY1MjgiLz48c3RvcCBvZmZzZXQ9Ii4zIiBzdG9wLWNvbG9yPSIjQkY5QjJGIi8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iI0ZGREMzOCIvPjxzdG9wIG9mZnNldD0iLjYiIHN0b3AtY29sb3I9IiNGRkRENzMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNCRjlCMkYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZCIgeDE9IjIuNiIgeDI9IjY0LjIiIHkxPSIzMi42IiB5Mj0iMzIuNiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNCRjlCMkYiLz48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNDN0E2M0IiLz48c3RvcCBvZmZzZXQ9Ii4xIiBzdG9wLWNvbG9yPSIjRERDNjVGIi8+PHN0b3Agb2Zmc2V0PSIuMiIgc3RvcC1jb2xvcj0iI0Y5RjA5MSIvPjxzdG9wIG9mZnNldD0iLjQiIHN0b3AtY29sb3I9IiNGRkRENzMiLz48c3RvcCBvZmZzZXQ9Ii41IiBzdG9wLWNvbG9yPSIjRkZEQzM4Ii8+PHN0b3Agb2Zmc2V0PSIuNyIgc3RvcC1jb2xvcj0iI0JGOUIyRiIvPjxzdG9wIG9mZnNldD0iLjgiIHN0b3AtY29sb3I9IiM5NjY1MjgiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4NTRFMjQiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZSIgeDE9IjM1LjUiIHgyPSIzNS41IiB5MT0iNTciIHkyPSIxLjIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcC8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImciIHgxPSIzNS41IiB4Mj0iMzUuNSIgeTE9IjU3IiB5Mj0iMS4yIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3AvPjxzdG9wIG9mZnNldD0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPg==`, light: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA2NSA2NyI+PHBhdGggZmlsbD0idXJsKCNhKSIgZD0iTTYzIDguNXY0MS4yYzAgMy43LTIuOCA2LjctNi40IDcuMmgtNC41djRjMCAyLjgtMSA0LjgtMy44IDUuMS0xIC4yLTIuMiAwLTMuNi0uMkw3LjIgNTdDMyA1Ni4xLjMgNTMuNS4yIDUwTDAgNDlWN2MuNC0zLjQgMy4yLTYgNi43LTZoNDkuMWM0IDAgNy4xIDMuNCA3LjEgNy40WiIvPjxwYXRoIGZpbGw9InVybCgjYikiIGQ9Ik01MS41IDE4LjNjLTEtMi42LTMtNC43LTUuNi01LjNMNy42IDEuNWMtLjUtLjItMS0uMy0xLjUtLjJBNi41IDYuNSAwIDAgMCAwIDd2NDIuN0MuNSA1My41IDMuMiA1NiA3LjQgNTdsMTUuOSAzLjcuOS4yIDIwLjYgNC44YzEuNC4zIDIuNy40IDMuNi4zIDIuOC0uNCAzLjgtMi40IDMuOC01LjFWMjEuNGE4IDggMCAwIDAtLjYtMy4xWiIvPjxwYXRoIGZpbGw9InVybCgjYykiIGQ9Ik01MS41IDE4LjNjLTEtMi42LTMtNC43LTUuNi01LjNMNy42IDEuNWMtLjUtLjItMS0uMy0xLjUtLjJBNi41IDYuNSAwIDAgMCAwIDd2NDIuN0MuNSA1My41IDMuMiA1NiA3LjQgNTdsMTUuOSAzLjcuOS4yIDIwLjYgNC44YzEuNC4zIDIuNy40IDMuNi4zIDIuOC0uNCAzLjgtMi40IDMuOC01LjFWMjEuNGE4IDggMCAwIDAtLjYtMy4xWiIvPjxwYXRoIGZpbGw9InVybCgjZCkiIGQ9Ik02NC4xIDcuM3Y0MS4yYzAgMy42IDAgNC00IDdhNy4zIDcuMyAwIDAgMCAyLjgtNS44VjguNWMwLTQtMy4zLTcuMy03LjMtNy4zSDEyLjFMNDcgMTEuNmE4LjUgOC41IDAgMCAxIDYuMSA4LjR2MzkuN2MwIDIuNSAwIDQtMi45IDUuNS40LS4yLjctLjYgMS0xIC41LS45LjctMiAuNy0zLjNWMjEuM2MwLTEtLjItMi4xLS42LTMuMS0uOS0yLjYtMy00LjYtNS42LTUuM0w3LjQgMS40Yy0uMy0uMS0uOC0uMi0xLjMtLjEtLjYgMC0xIDAtMS42LjNhNC41IDQuNSAwIDAgMC0uOS4zcy0uMiAwLS4yLjJIM2wtLjEuMS0uNC40Yy44LTEgMS44LTEuOCAzLTIuM2guMUM2LjUuMSA3LjEgMCA4IDBoNDljNCAwIDcuMiAzLjIgNy4yIDcuM1oiLz48bWFzayBpZD0iZiIgd2lkdGg9IjQ3IiBoZWlnaHQ9IjU3IiB4PSIxMiIgeT0iMSIgbWFza1VuaXRzPSJ1c2VyU3BhY2VPblVzZSIgc3R5bGU9Im1hc2stdHlwZTphbHBoYSI+PHBhdGggZmlsbD0idXJsKCNlKSIgZD0iTTU4LjcgMjAuMXYzNi4zYTYgNiAwIDAgMS0yLjEuNmgtMy40VjIwLjFhOC41IDguNSAwIDAgMC02LjEtOC40TDEyLjIgMS4zbDM5LjUgMTAuNGE5IDkgMCAwIDEgNi40IDUuM2MuNCAxIC42IDIgLjYgMy4xWiIvPjwvbWFzaz48ZyBtYXNrPSJ1cmwoI2YpIj48cGF0aCBmaWxsPSJ1cmwoI2cpIiBkPSJNNTguNyAyMC4xdjM2LjNhNiA2IDAgMCAxLTIgLjZoLTMuNFYyMC4xYzAtMS0uMi0yLjEtLjYtMy4xLS45LTIuNi0zLTQuNi01LjYtNS4zTDEyLjMgMS4zbDM5LjQgMTAuNGE5IDkgMCAwIDEgNi40IDUuM2MuNCAxIC42IDIgLjYgMy4xWiIgb3BhY2l0eT0iLjMiLz48L2c+PHBhdGggZmlsbD0iIzE2MTYxNiIgZD0ibTEzLjIgNDMuMyAxLjQgMWExMCAxMCAwIDAgMCA0IDJjMy4yIDEgNi4yLjkgOC44LS41IDIuMS0xLjIgMy42LTMgNC4yLTUuNi41LTIuNCAwLTUtMS41LTcuNXYtLjJsLjEuMWMyIDIgMyA0LjEgMy42IDYuNmE4LjggOC44IDAgMCAxLTcuNSAxMC4xYy0xLjcuMy0zLjQuMi01LS4zLTIuNi0uNy00LjktMi02LjgtNC4yYTUgNSAwIDAgMS0xLjMtMS41WiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Im0yMy4xIDI5LjguOC0uOGE3LjQgNy40IDAgMCAxIDUuMS0xLjZjMi4xLjIgNCAxIDYgMi40QTE2IDE2IDAgMCAxIDQxLjUgNDNjLS4xIDIuNS0xIDQuNi0yLjYgNi4xbC0xLjIgMWgtLjJsLjItLjJhOC41IDguNSAwIDAgMCAxLjctNGMuNC0zLjQtLjQtNi44LTIuNS0xMC4xYTE0LjYgMTQuNiAwIDAgMC02LTUuNGMtMi43LTEuNC01LjMtMS42LTcuNy0uNCAwLS4yIDAtLjItLjItLjJaIi8+PHBhdGggZmlsbD0iIzE2MTYxNiIgZD0iTTI1LjIgNTEuN2E5IDkgMCAwIDAgNy44LTMuOCA5LjUgOS41IDAgMCAwIDEuNi00Yy41LTIuOCAwLTUuNS0xLjUtOC4zYTEyLjEgMTIuMSAwIDAgMC02LjItNS42bC0uMS0uMWguNWwuNS4xYzIuOS42IDUuMiAyIDcuMiA0LjYgMS4zIDEuNiAyIDMuNCAyLjQgNS4zIDEuMiA1LjMtMS4zIDEwLjMtNS42IDExLjktMS44LjctMy44LjgtNS45LjJsLS43LS4zWiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Im0zOC44IDI1LjctMS40LTEuMmMtMS4zLS45LTIuNi0xLjYtNC0yYTExIDExIDAgMCAwLTguNy42IDcuNyA3LjcgMCAwIDAtNC4yIDUuNWMtLjUgMi41IDAgNSAxLjUgNy42bC4xLjItLjUtLjVhMTIgMTIgMCAwIDEtMy4zLTYuMmMtLjMtMS44IDAtMy40LjYtNWE4LjQgOC40IDAgMCAxIDYuMy01YzEuOC0uNCAzLjctLjMgNS43LjIgMi45LjggNS40IDIuNCA3LjQgNWwuNS44WiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Im0yOC45IDM5LjItLjkuOGE3IDcgMCAwIDEtNSAxLjVjLTItLjItNC4xLTEtNi0yLjNhMTYuNSAxNi41IDAgMCAxLTYuMi05Yy0uNC0xLjctLjYtMy4zLS40LTQuOS4yLTIuMiAxLTQuMSAyLjUtNS41bDEuMy0xdi4yYy0xIDEuNC0xLjcgMy0xLjggNC45LS4zIDQuMiAxLjIgOC4yIDQuNSAxMS44YTEzIDEzIDAgMCAwIDUuMSAzLjUgOCA4IDAgMCAwIDYuNy0uMWguMloiLz48cGF0aCBmaWxsPSIjMTYxNjE2IiBkPSJNOC42IDI5LjdhMTYgMTYgMCAwIDAgNS4xIDguNiAxNiAxNiAwIDAgMCA1IDMuMmMyLjcgMSA1LjIgMS4zIDcuNS40IDIuNS0uOCA0LTIuNiA0LjUtNS40di0uMWwuMi41di41YzAgMi4zLS41IDQuMi0xLjggNS43YTYuOCA2LjggMCAwIDEtNC4zIDJjLTEuNy4zLTMuNS4xLTUuMy0uNWExNi44IDE2LjggMCAwIDEtOC45LTcuMyAxMiAxMiAwIDAgMS0yLTd2LS42Wm0xMi42IDIuOS0uMS0xLjFjLS4xLTIuMy41LTQuMiAxLjgtNS42IDEuMi0xLjIgMi42LTIgNC4zLTIuMiAxLjctLjIgMy41IDAgNS4zLjZhMTcgMTcgMCAwIDEgOC40IDYuNWMxLjIgMS43IDIgMy43IDIuMyA1LjZhOSA5IDAgMCAxIC4xIDIuN3YuMmMtLjEtLjQtLjMtLjctLjMtMS4xYTE3LjggMTcuOCAwIDAgMC05LjMtMTAuNSAxMC44IDEwLjggMCAwIDAtNy41LS44IDYuNiA2LjYgMCAwIDAtNSA1LjVjLjEgMCAuMS4xIDAgLjIuMSAwIC4xIDAgMCAwWiIvPjxwYXRoIGZpbGw9IiMxNjE2MTYiIGQ9Ik0yNS4yIDM5aC0xYy0yLjMtLjQtNC4zLTEuNi02LjEtMy4zYTEyLjkgMTIuOSAwIDAgMS0zLjgtMTAuNGMuNS00IDIuNS02LjYgNS45LThhOC43IDguNyAwIDAgMSA2LjUgMCA5IDkgMCAwIDAtNCAuOCA4LjYgOC42IDAgMCAwLTUgNS40Yy0uOCAyLjQtLjkgNS4xLjIgOCAxLjIgMy4yIDMuMyA1LjYgNi4zIDcuMi40IDAgLjcuMiAxIC40WiIvPjxnIG9wYWNpdHk9Ii41Ij48ZyBvcGFjaXR5PSIuNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI0LjQgNDkuOEExNCAxNCAwIDAgMSAxNCA0NS4xbC0uOS0xLS40LS41LS4yLS4zLjUtLjJoLjJsLjUuNSAxIC44YTEzLjEgMTMuMSAwIDAgMCA3LjcgMi41YzEuNiAwIDMuMi0uNCA0LjYtMS4yIDIuMi0xLjEgMy41LTMgNC01LjQuNi0yLjMgMC00LjgtMS40LTcuMmwtLjEtLjMtLjItMSAuNy43LjIuMWMyIDIgMy4yIDQuMiAzLjYgNi43YTguNyA4LjcgMCAwIDEtNy43IDEwLjVoLTEuOFoiIG9wYWNpdHk9Ii41Ii8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTMwIDMyLjV2LjJjMiAxLjkgMy4xIDQgMy42IDYuNi40IDIuMiAwIDQtMSA1LjdhOC44IDguOCAwIDAgMS02LjUgNC40bC0xLjcuMWExMyAxMyAwIDAgMS0xMC00LjZMMTMgNDMuM2wxLjUgMS4xYTE0IDE0IDAgMCAwIDcuOCAyLjZjMS44IDAgMy40LS40IDUtMS4yIDIuMS0xLjIgMy42LTMgNC4yLTUuNS41LTIuNSAwLTUtMS41LTcuNmwtLjItLjJabS0xLjEtMS43LjQgMS45LjEuNGMxLjUgMi4zIDIgNC43IDEuNCA3YTcgNyAwIDAgMS0zLjkgNS4yIDEwIDEwIDAgMCAxLTQuNSAxLjEgMTIuMyAxMi4zIDAgMCAxLTcuNS0yLjVsLTEtLjgtLjQtLjQtLjMtLjItLjQuMi0uNi40LjQuNS40LjQgMSAxLjJBMTUgMTUgMCAwIDAgMjQuNCA1MGwxLjgtLjJhOSA5IDAgMCAwIDctNC42IDkgOSAwIDAgMCAxLTYuMmMtLjQtMi41LTEuNy00LjgtMy42LTYuOWwtLjItLjEtMS41LTEuM1oiIG9wYWNpdHk9Ii41Ii8+PC9nPjxnIG9wYWNpdHk9Ii41Ij48cGF0aCBmaWxsPSIjZmZmIiBkPSJtMzcuNyA1MC4zLS41LS4xLjQtLjZhOC4yIDguMiAwIDAgMCAxLjYtMy45Yy41LTMuMy0uNC02LjYtMi41LTkuOWExNC4zIDE0LjMgMCAwIDAtNS44LTUuMmMtMS41LS44LTMtMS4yLTQuMy0xLjItMSAwLTIuMS4zLTMuMS43bC0uNC4xLS4yLS4xLS4yLS4yLjItLjMuMy0uMi42LS42YzEuMy0xIDIuOS0xLjYgNC43LTEuNmguNmMyIC4xIDQuMSAxIDYuMSAyLjRBMTYuNSAxNi41IDAgMCAxIDQyIDQzYy0uMSAyLjctMSA0LjgtMi43IDYuM2wtLjkuNy0uNC4zaC0uM1oiIG9wYWNpdHk9Ii41Ii8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTI4LjUgMjcuNWguNWMyLjEuMSA0IDEgNiAyLjNhMTYgMTYgMCAwIDEgNi42IDEzLjNjLS4xIDIuNS0xIDQuNS0yLjYgNi4xbC0xLjIgMWgtLjFsLjEtLjNhOC41IDguNSAwIDAgMCAxLjctNGMuNC0zLjQtLjQtNi43LTIuNS0xMGExNC42IDE0LjYgMCAwIDAtNi01LjVjLTEuNS0uOC0zLTEuMS00LjQtMS4xYTggOCAwIDAgMC0zLjMuN2gtLjFsLjctLjhhNi4zIDYuMyAwIDAgMSA0LjYtMS43Wm0wLS43YTcuNiA3LjYgMCAwIDAtNS42IDIuM2wtLjIuMy0uNC40LjQuNC4zLjQuNC0uMmguMmMxLS41IDItLjcgMy0uNyAxLjMgMCAyLjcuNCA0LjIgMSAyLjIgMS4zIDQuMiAzIDUuNiA1LjNhMTQgMTQgMCAwIDEgMi41IDkuNiA4IDggMCAwIDEtMS41IDMuOGwtLjIuMi0uNi44LjkuM2guMmwuNC0uMi40LS4yYTggOCAwIDAgMCAxLS43IDkuMSA5LjEgMCAwIDAgMi43LTYuNWMwLTEuNS0uMi0zLS41LTQuNWExOCAxOCAwIDAgMC02LjQtOS4zYy0yLTEuNS00LjEtMi4zLTYuMy0yLjVoLS41WiIgb3BhY2l0eT0iLjUiLz48L2c+PGcgb3BhY2l0eT0iLjUiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yOC42IDUyLjZjLTEgMC0xLjggMC0yLjgtLjRoLS40bC0yLjItLjdoMi4yYzMuMiAwIDUuNi0xLjIgNy40LTMuOGE5LjggOS44IDAgMCAwIDEuNi00IDEyIDEyIDAgMCAwLTEuNC04IDEyIDEyIDAgMCAwLTYtNS40aC0uMXMtLjIgMC0uMy0uMmwtLjQtLjVIMjhhMTMuNCAxMy40IDAgMCAxIDkuOSAxMC4yYzEuMiA1LjQtMS4zIDEwLjYtNS44IDEyLjNhMTQgMTQgMCAwIDEtMy40LjVaIiBvcGFjaXR5PSIuNSIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0yNi44IDI5LjloLjVsLjUuMWExMi45IDEyLjkgMCAwIDEgOS42IDkuOWMxLjIgNS4zLTEuMyAxMC4zLTUuNiAxMS45LTEgLjQtMiAuNi0zLjIuNi0uOSAwLTEuOC0uMi0yLjctLjRsLS43LS4yaC4xYzMuNCAwIDUuOS0xLjMgNy43LTMuOWE5LjUgOS41IDAgMCAwIDEuNi00Yy41LTIuNyAwLTUuNS0xLjUtOC4zYTEyIDEyIDAgMCAwLTYuMi01LjVsLS4xLS4yWm0tMS4zLS43LjggMSAuMy4zaC4yYTEyIDEyIDAgMCAxIDUuOCA1LjMgMTIgMTIgMCAwIDEgMS41IDggOS41IDkuNSAwIDAgMS0xLjUgMy43IDguMiA4LjIgMCAwIDEtNy4yIDMuNmgtNC4ybDMuOCAxLjJoLjJsLjYuMmE5LjcgOS43IDAgMCAwIDYuMi0uMmM0LjYtMS43IDcuMi03IDYtMTIuNmExMy4yIDEzLjIgMCAwIDAtMTAuMS0xMC4zaC0xLjFsLTEuMy0uMloiIG9wYWNpdHk9Ii41Ii8+PC9nPjxnIG9wYWNpdHk9Ii41Ij48cGF0aCBmaWxsPSIjZmZmIiBkPSJtMjEuOCAzNi42LS4yLS4yLS4zLS4zYy0xLjgtMi0zLTQtMy4zLTYuNGE4LjggOC44IDAgMCAxIDctMTAuMyAxMS44IDExLjggMCAwIDEgNS44LjJjMy4xLjggNS42IDIuNiA3LjYgNWwuNC42LjUuNi0uNi4xaC0uMWwtLjUtLjQtMS0uN2ExMy4xIDEzLjEgMCAwIDAtNy43LTIuNiAxMCAxMCAwIDAgMC00LjggMS4yIDcuNyA3LjcgMCAwIDAtNCA1LjNBMTAgMTAgMCAwIDAgMjIgMzZsLjEuMy4yIDEtLjUtLjdaIiBvcGFjaXR5PSIuNSIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0yNy41IDE5LjRBMTMuNyAxMy43IDAgMCAxIDM4LjIgMjVsLjYuOC0xLjQtMS4yYTEzLjkgMTMuOSAwIDAgMC03LjgtMi42Yy0xLjggMC0zLjQuNS01IDEuMmE3LjcgNy43IDAgMCAwLTQuMSA1LjVjLS41IDIuNSAwIDUgMS40IDcuNmwuMi4yLS42LS41YTEyIDEyIDAgMCAxLTMuMi02LjIgOC40IDguNCAwIDAgMSA2LjktMTBsMi4zLS4zWm0wLS42Yy0uOCAwLTEuNy4xLTIuNS4zYTguOSA4LjkgMCAwIDAtNi43IDUuNCA5IDkgMCAwIDAtLjUgNS4zIDEyIDEyIDAgMCAwIDMuNCA2LjZsLjMuMy4yLjIgMS4zIDEuNC0uMy0ydi0uMWwtLjEtLjItLjEtLjJhMTAgMTAgMCAwIDEtMS40LTdjLjUtMi4zIDEuOC00IDMuOS01LjEgMS40LS44IDMtMS4yIDQuNS0xLjJhMTIuMyAxMi4zIDAgMCAxIDcuNSAyLjZsMSAuN2MwIC4xLjIuMy40LjNsLjIuMmguM2wxLS4yLS42LS44LS4yLS4zLS40LS41Yy0yLTIuNi00LjYtNC40LTcuOC01LjMtMS0uMi0yLjItLjQtMy40LS40WiIgb3BhY2l0eT0iLjUiLz48L2c+PGcgb3BhY2l0eT0iLjUiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMy41IDQxLjhoLS42YTExIDExIDAgMCAxLTYtMi40IDE2LjUgMTYuNSAwIDAgMS02LjMtOS4xYy0uNC0xLjctLjYtMy4zLS40LTVhOC41IDguNSAwIDAgMSAyLjctNS43bC44LS42LjQtLjMuMi0uMS40LjQtLjMuNGE5LjIgOS4yIDAgMCAwLTEuNyA0LjcgMTYgMTYgMCAwIDAgNC40IDExLjUgMTIuOCAxMi44IDAgMCAwIDguNCA0LjFjMSAwIDIuMS0uMyAzLjEtLjdsLjMtLjEuMi4xLjIuMi0uMi4zLS4yLjItLjYuNmMtMS40LjktMyAxLjUtNC44IDEuNVoiIG9wYWNpdHk9Ii41Ii8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTE0LjIgMTguOGMwIC4xIDAgLjEgMCAwdi4yYTkgOSAwIDAgMC0xLjcgNC45IDE1IDE1IDAgMCAwIDQuNCAxMS43IDEzIDEzIDAgMCAwIDUuMiAzLjZjMS4yLjQgMi40LjYgMy41LjZhOCA4IDAgMCAwIDMuMi0uN2guMmwtLjkuOGE2LjggNi44IDAgMCAxLTQuNSAxLjZoLS41Yy0yLS4yLTQuMS0xLTYtMi4zYTE2LjUgMTYuNSAwIDAgMS02LjItOWMtLjQtMS43LS41LTMuMy0uNC00LjlhOCA4IDAgMCAxIDIuNi01LjVsMS4xLTFabS4xLS44LS41LjQtLjQuMi0uOS44YTkgOSAwIDAgMC0yLjcgNmMtLjIgMS42IDAgMy4yLjQgNWExNyAxNyAwIDAgMCA2LjQgOS4zIDEyIDEyIDAgMCAwIDYuMyAyLjRoLjZjMS45IDAgMy41LS42IDQuOC0xLjhsLjYtLjZjLjEgMCAuMiAwIC4zLS4ybC40LS40LS4zLS41aC0uMWwtLjItLjItLjQuMmgtLjJjLTEgLjUtMS45LjctMyAuN2ExMi4zIDEyLjMgMCAwIDEtOC4xLTRBMTUuNCAxNS40IDAgMCAxIDEzIDIzLjhhOCA4IDAgMCAxIDEuNi00LjVoLjF2LS4ybC4zLS40LS4zLS4zLS40LS41WiIgb3BhY2l0eT0iLjUiLz48L2c+PGcgb3BhY2l0eT0iLjUiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0yMy4zIDQ1LjZjLTEuMyAwLTIuNi0uMi00LS43YTE2LjkgMTYuOSAwIDAgMS05LTcuNCAxMi42IDEyLjYgMCAwIDEtMi03LjdsLjMtMi4zLjQgMmMuNiAzLjIgMi4zIDYgNSA4LjVhMTYgMTYgMCAwIDAgNC44IDMuMWMxLjYuNiAzIDEgNC41IDEgMSAwIDEuOS0uMiAyLjgtLjVhNi4zIDYuMyAwIDAgMCA0LjMtNS4yYzAtLjIgMC0uMy4yLS40bC40LS4ydi42bC4xLjR2LjZjLjIgMi4zLS41IDQuMy0xLjkgNS45YTcuNSA3LjUgMCAwIDEtNC40IDIuMmwtMS41LjFaIiBvcGFjaXR5PSIuNSIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik04LjYgMjkuN2ExNiAxNiAwIDAgMCA1LjEgOC42IDE2IDE2IDAgMCAwIDUgMy4yYzEuNi42IDMuMSAxIDQuNiAxIDEgMCAyLS4yIDMtLjUgMi40LS45IDQtMi42IDQuNC01LjR2LS4ybC4xLjYuMS41YTggOCAwIDAgMS0xLjggNS42IDYuOCA2LjggMCAwIDEtNC4zIDIuMSAxMC43IDEwLjcgMCAwIDEtNS4zLS41IDE2LjggMTYuOCAwIDAgMS04LjktNy4zIDExLjkgMTEuOSAwIDAgMS0yLTd2LS43Wm0tLjItNC4yTDggMjkuNnYuOGMwIDIuNC42IDQuOCAyIDcuMiAyLjMgMy43IDUuNCA2LjIgOS4zIDcuNiAxLjQuNCAyLjcuNyA0IC43bDEuNi0uMWMyLS4zIDMuNC0xIDQuNi0yLjNhOC4zIDguMyAwIDAgMCAyLTYuMXYtMS4ybC0uMi0uOS0uOC41LS4zLjV2LjFhNiA2IDAgMCAxLTQuMSA1Yy0uOS4zLTEuOC41LTIuNy41YTEyIDEyIDAgMCAxLTQuNC0xYy0xLjctLjYtMy4zLTEuNy00LjgtM2ExNS40IDE1LjQgMCAwIDEtNC44LTguM2wtMS00LjFaIiBvcGFjaXR5PSIuNSIvPjwvZz48ZyBvcGFjaXR5PSIuNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0ibTQzIDM5LS4yLS43YTE1IDE1IDAgMCAwLTIuOS01LjUgMTYuOSAxNi45IDAgMCAwLTYuMi00LjggMTEuNSAxMS41IDAgMCAwLTcuMy0uOCA2LjMgNi4zIDAgMCAwLTQuOCA1LjN2LjJsLS4xLjEtLjUuNXYtLjZsLS4xLS40di0uN2MtLjItMi40LjUtNC40IDEuOS01LjkgMS4xLTEuMiAyLjYtMiA0LjQtMi4ybDEuNS0uMmMxLjMgMCAyLjYuMyA0IC44IDMuNCAxLjIgNi4zIDMuNCA4LjUgNi41IDEuMyAxLjkgMi4xIDMuOCAyLjQgNS44LjIgMSAuMiAxLjkgMCAyLjhsLS4yIDEuNEw0MyAzOVoiIG9wYWNpdHk9Ii41Ii8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTI4LjcgMjMuNmMxLjMgMCAyLjUuMiAzLjkuN2ExNyAxNyAwIDAgMSA4LjMgNi40YzEuMyAxLjggMiAzLjcgMi40IDUuN2E5IDkgMCAwIDEgMCAyLjZ2LjJjMC0uNC0uMi0uNy0uMy0xLjEtLjUtMi0xLjUtNC0yLjktNS42LTEuNy0yLjEtNC0zLjgtNi40LTUtMS43LS43LTMuMy0xLjEtNS0xLjEtLjggMC0xLjcuMS0yLjUuM2E2LjYgNi42IDAgMCAwLTUgNS42di4xbC0uMi0xYy0uMS0yLjMuNS00LjIgMS45LTUuNyAxLTEuMiAyLjUtMS45IDQuMi0yaDEuNlptMC0uNi0xLjUuMWE3LjYgNy42IDAgMCAwLTQuNiAyLjQgOC4xIDguMSAwIDAgMC0yLjEgNnYuOGwuMS40LjIgMS40LjktMS4xLjEtLjF2LS4ybC4xLS4yYy42LTIuNyAyLTQuNCA0LjYtNS4xYTkgOSAwIDAgMSAyLjQtLjQgMTYuNSAxNi41IDAgMCAxIDEwLjkgNS45IDEzIDEzIDAgMCAxIDIuOCA1LjRsLjIuN3YuNGwuNiAyLjUuNi0yLjV2LS4yYTcgNyAwIDAgMCAwLTIuOWMtLjMtMi4xLTEuMi00LTIuNS02YTE3LjggMTcuOCAwIDAgMC04LjYtNi42Yy0xLjUtLjQtMy0uNy00LjItLjdaIiBvcGFjaXR5PSIuNSIvPjwvZz48ZyBvcGFjaXR5PSIuNSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTI1LjIgMzkuM2gtLjNsLS44LS4xYTEyIDEyIDAgMCAxLTYuMi0zLjRBMTMuMyAxMy4zIDAgMCAxIDE0LjEgMjVjLjUtNC4xIDIuNi03IDYtOC4zYTEwIDEwIDAgMCAxIDYtLjJsLjkuMyAxLjUuNmgtMi4xYTguNSA4LjUgMCAwIDAtOC4zIDZjLS44IDIuNC0uOCA1IC4yIDcuN2ExMi4zIDEyLjMgMCAwIDAgNi44IDcuM2wuNC4ydi41bC0uMy4xWiIgb3BhY2l0eT0iLjUiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMjMuMyAxNi42YTkuOSA5LjkgMCAwIDEgMy41LjdoLS40YTguOCA4LjggMCAwIDAtOC42IDYuMmMtLjkgMi40LTEgNSAuMSA4YTEzIDEzIDAgMCAwIDYuNCA3LjFsLjkuNGgtMWMtMi4zLS40LTQuNC0xLjYtNi4xLTMuM2ExMi45IDEyLjkgMCAwIDEtMy44LTEwLjRjLjUtNCAyLjQtNi43IDUuOS04IDEtLjUgMi0uNyAzLjEtLjdabTAtLjZhOS44IDkuOCAwIDAgMC05LjYgOSAxNCAxNCAwIDAgMCA0IDExYzEuOSAxLjkgNCAzIDYuNCAzLjVsLjcuMWguM2wuNy4xdi0xbC0uMy0uMi0uMy0uMS0uNi0uM2ExMiAxMiAwIDAgMS02LTYuOSAxMSAxMSAwIDAgMS0uMi03LjYgOC42IDguNiAwIDAgMSA0LjYtNSA4IDggMCAwIDEgMy40LS44aC40bDMuNS4yLTMuMy0xLjMtLjgtLjNjLTEtLjMtMi0uNC0yLjktLjRaIiBvcGFjaXR5PSIuNSIvPjwvZz48L2c+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iNC42IiB4Mj0iNTguNCIgeTE9IjU1LjkiIHkyPSIyLjMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjQkY5QjJGIi8+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjQzdBNjNCIi8+PHN0b3Agb2Zmc2V0PSIuMSIgc3RvcC1jb2xvcj0iI0REQzY1RiIvPjxzdG9wIG9mZnNldD0iLjIiIHN0b3AtY29sb3I9IiNGOUYwOTEiLz48c3RvcCBvZmZzZXQ9Ii40IiBzdG9wLWNvbG9yPSIjRkZERDczIi8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iI0ZGREMzOCIvPjxzdG9wIG9mZnNldD0iLjciIHN0b3AtY29sb3I9IiNCRjlCMkYiLz48c3RvcCBvZmZzZXQ9Ii44IiBzdG9wLWNvbG9yPSIjOTY2NTI4Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjODU0RTI0Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImIiIHgxPSIwIiB4Mj0iNTIuMSIgeTE9IjMzLjciIHkyPSIzMy43IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzg1NEUyNCIvPjxzdG9wIG9mZnNldD0iLjIiIHN0b3AtY29sb3I9IiM5NjY1MjgiLz48c3RvcCBvZmZzZXQ9Ii4zIiBzdG9wLWNvbG9yPSIjQkY5QjJGIi8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iI0ZGREMzOCIvPjxzdG9wIG9mZnNldD0iLjYiIHN0b3AtY29sb3I9IiNGRkRENzMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNCRjlCMkYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9IjQiIHgyPSI0Ny42IiB5MT0iNTYuNSIgeTI9IjEzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzg1NEUyNCIvPjxzdG9wIG9mZnNldD0iLjIiIHN0b3AtY29sb3I9IiM5NjY1MjgiLz48c3RvcCBvZmZzZXQ9Ii4zIiBzdG9wLWNvbG9yPSIjQkY5QjJGIi8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iI0ZGREMzOCIvPjxzdG9wIG9mZnNldD0iLjYiIHN0b3AtY29sb3I9IiNGRkRENzMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNCRjlCMkYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZCIgeDE9IjIuNiIgeDI9IjY0LjIiIHkxPSIzMi42IiB5Mj0iMzIuNiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNCRjlCMkYiLz48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNDN0E2M0IiLz48c3RvcCBvZmZzZXQ9Ii4xIiBzdG9wLWNvbG9yPSIjRERDNjVGIi8+PHN0b3Agb2Zmc2V0PSIuMiIgc3RvcC1jb2xvcj0iI0Y5RjA5MSIvPjxzdG9wIG9mZnNldD0iLjQiIHN0b3AtY29sb3I9IiNGRkRENzMiLz48c3RvcCBvZmZzZXQ9Ii41IiBzdG9wLWNvbG9yPSIjRkZEQzM4Ii8+PHN0b3Agb2Zmc2V0PSIuNyIgc3RvcC1jb2xvcj0iI0JGOUIyRiIvPjxzdG9wIG9mZnNldD0iLjgiIHN0b3AtY29sb3I9IiM5NjY1MjgiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4NTRFMjQiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZSIgeDE9IjM1LjUiIHgyPSIzNS41IiB5MT0iNTciIHkyPSIxLjIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcC8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImciIHgxPSIzNS41IiB4Mj0iMzUuNSIgeTE9IjU3IiB5Mj0iMS4yIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3AvPjxzdG9wIG9mZnNldD0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPg==`, }), homepage: 'https://paycash.app', download: 'https://paycash.app', }) async login(context: LoginContext): Promise<WalletPluginLoginResponse> { Iif (!context.ui) { throw new Error('No UI available') } const {callback, request, requestKey, privateKey} = await createIdentityRequest( context, this.buoyUrl ) const elements: PromptElement[] = [ { type: 'qr', data: request.encode(true, false, 'esr:'), }, ] const promptResponse = context.ui.prompt({ title: 'Connect with PayCash', body: 'Scan the QR code with PayCash on your mobile device to connect.', elements, }) // eslint-disable-next-line @typescript-eslint/no-empty-function promptResponse.catch(() => {}) const callbackResponse: CallbackPayload = await waitForCallback( callback, undefined, undefined ) verifyLoginCallbackResponse(callbackResponse, context) Iif (!callbackResponse.cid || !callbackResponse.sa || !callbackResponse.sp) { throw new Error('Invalid callback response') } this.requestKey = requestKey this.privateKey = privateKey this.signerKey = callbackResponse.link_key ? PublicKey.from(callbackResponse.link_key) : undefined this.channelUrl = callbackResponse.link_ch this.channelName = callbackResponse.link_name const resolvedResponse = await ResolvedSigningRequest.fromPayload( callbackResponse, context.esrOptions ) const identityProof = resolvedResponse.getIdentityProof(callbackResponse.sig) return { chain: Checksum256.from(callbackResponse.cid), permissionLevel: PermissionLevel.from({ actor: callbackResponse.sa, permission: callbackResponse.sp, }), identityProof, } } async sign( resolved: ResolvedSigningRequest, context: TransactContext ): Promise<WalletPluginSignResponse> { Iif (!context.ui) { throw new Error('No UI available') } // Create a signing request for the transaction const modifiedRequest = await context.createRequest({transaction: resolved.transaction}) // Generate ESR URI for the transaction const esrUri = modifiedRequest.encode(true, false, 'esr:') // Show QR code to the user for cold wallet signing const elements: PromptElement[] = [ { type: 'qr', data: esrUri, }, { type: 'textarea', label: 'Instructions', data: { value: 'Scan this QR code with your PayCash wallet to sign the transaction. After signing, paste the signature below.', readonly: true, }, }, { type: 'textarea', label: 'Signature', data: { placeholder: 'Paste the signature from PayCash here', }, }, ] // Prompt the user and wait for signature input const promptResponse = await context.ui.prompt({ title: 'Sign Transaction with PayCash', body: 'Scan the QR code with PayCash, sign the transaction, and paste the signature below.', elements, }) // Extract the signature from the textarea (use label as key, cast to any to avoid linter error) const signature = (promptResponse as any)['Signature'] || '' Iif (!signature) { throw new Error( 'No signature provided. Please sign the transaction in PayCash and paste the signature.' ) } // Return the signature in the expected format return { signatures: [signature], } } } |