@seams/wallet 0.26.0 → 0.28.0

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 (384) hide show
  1. package/dist/.build-inputs.sha256 +1 -1
  2. package/dist/esm/SeamsWeb/publicApi/near.js +22 -11
  3. package/dist/esm/SeamsWeb/walletIframe/client/nearCommands.js +9 -10
  4. package/dist/esm/SeamsWeb/walletIframe/client/router.js +95 -38
  5. package/dist/esm/SeamsWeb/walletIframe/client/sessionCommands.js +16 -0
  6. package/dist/esm/SeamsWeb/walletIframe/host/surface-measurement-reporter.js +1 -0
  7. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/AuthMenuSurface.js +1 -1
  8. package/dist/esm/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.js +28 -0
  9. package/dist/esm/SeamsWeb/walletIframe/host/walletMutationGuard.js +1 -0
  10. package/dist/esm/SeamsWeb/walletIframe/shared/exactSessionState.js +27 -4
  11. package/dist/esm/SeamsWeb/walletIframe/shared/messages.js +7 -1
  12. package/dist/esm/core/authMethods/plugins.js +8 -2
  13. package/dist/esm/core/rpcClients/near/NearClient.js +7 -0
  14. package/dist/esm/core/signingEngine/flows/signNear/signTransactions.js +3 -0
  15. package/dist/esm/core/signingEngine/nearTransactionSubmission.js +89 -0
  16. package/dist/esm/core/signingEngine/uiConfirm/ui/confirm-surface-resize.js +2 -2
  17. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/ReviewDisclosure.js +7 -1
  18. package/dist/esm/core/signingEngine/uiConfirm/ui/preact/mountConfirmationSurface.js +123 -14
  19. package/dist/esm/core/ui/messages.js +17 -0
  20. package/dist/esm/react/components/AccountMenuButton/AccountMenuButtonView.js +35 -22
  21. package/dist/esm/react/components/AccountMenuButton/AccountSettingsDialog.js +157 -0
  22. package/dist/esm/react/components/AccountMenuButton/AuthenticationMethodsModal.js +13 -1
  23. package/dist/esm/react/components/AccountMenuButton/ExternalWalletSettings.js +46 -0
  24. package/dist/esm/react/components/AccountMenuButton/LinkedDevicesModal.js +14 -2
  25. package/dist/esm/react/components/AccountMenuButton/WalletSettingsLayout.js +1 -1
  26. package/dist/esm/react/components/AccountMenuButton/Web3AuthProfileButton.css +154 -5
  27. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.css +27 -3
  28. package/dist/esm/react/components/AccountMenuButton/icons/HoverArrowIcon.js +2 -2
  29. package/dist/esm/react/components/AccountMenuButton/index.js +7 -3
  30. package/dist/esm/react/components/ExternalNearWalletIcon.js +32 -0
  31. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.css +182 -0
  32. package/dist/esm/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.js +315 -0
  33. package/dist/esm/react/components/HostedSeamsAuthMenu/shell.js +13 -4
  34. package/dist/esm/react/components/externalWalletBrandImages.js +7 -0
  35. package/dist/esm/react/context/reactLoginStateBuilders.js +20 -0
  36. package/dist/esm/react/externalNear.js +2 -6
  37. package/dist/esm/react/index.js +2 -1
  38. package/dist/esm/react/styles/styles.css +364 -8
  39. package/dist/esm/react/styles.css +1 -0
  40. package/dist/esm/react/transactionReview/boundCalls.js +31 -26
  41. package/dist/esm/sdk/{ConfirmationDrawer-BmzikAr4.js → ConfirmationDrawer-MJoE0AAo.js} +1 -1
  42. package/dist/{public/sdk/NonceCoordinator-CcD2FqXh.js → esm/sdk/NonceCoordinator-3YhmDTS5.js} +1 -1
  43. package/dist/{public/sdk/SeamsWordmark-DqiC9-sd.js → esm/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  44. package/dist/esm/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
  45. package/dist/esm/sdk/{adapters-e7twFGov.js → adapters-C-g_hkkZ.js} +1 -1
  46. package/dist/esm/sdk/appearance-token-vars-01eH9pgA.js +1 -0
  47. package/dist/{public/sdk/clientSessionPersistenceState-YvVHKRoe.js → esm/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
  48. package/dist/esm/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  49. package/dist/esm/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
  50. package/dist/esm/sdk/configBuilder-DpChXfDO.js +1 -0
  51. package/dist/esm/sdk/{configuration-DBEc3bsj.js → configuration-BAad7ngq.js} +1 -1
  52. package/dist/esm/sdk/confirm-ui-em0vkd2m.js +2 -0
  53. package/dist/esm/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
  54. package/dist/esm/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-x3WkiYrd.js} +1 -1
  55. package/dist/esm/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
  56. package/dist/{public/sdk/ecdsaCapabilityManifest-CXVq8Qzb.js → esm/sdk/ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
  57. package/dist/esm/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
  58. package/dist/{public/sdk/ecdsaDerivationExport-CkmSe0ao.js → esm/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
  59. package/dist/esm/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  60. package/dist/esm/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
  61. package/dist/esm/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  62. package/dist/esm/sdk/errors-BJBDbwHk.js +1 -0
  63. package/dist/esm/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  64. package/dist/esm/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BSTfHhau.js} +1 -1
  65. package/dist/esm/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CjST_NUK.js} +1 -1
  66. package/dist/esm/sdk/host-C51z-AxP.js +1 -0
  67. package/dist/{public/sdk/icons-DDRXJ2W1.js → esm/sdk/icons-BlMXolHv.js} +1 -1
  68. package/dist/esm/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
  69. package/dist/esm/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
  70. package/dist/esm/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
  71. package/dist/esm/sdk/{localOnly-Jw9v9GU9.js → localOnly-Xs89Xajm.js} +1 -1
  72. package/dist/{public/sdk/mountExportPrivateKeySurface-B_052qyI.js → esm/sdk/mountExportPrivateKeySurface-CsUEKeum.js} +1 -1
  73. package/dist/esm/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-kFLo5zLk.js} +1 -1
  74. package/dist/esm/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
  75. package/dist/{public/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → esm/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
  76. package/dist/esm/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  77. package/dist/esm/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  78. package/dist/esm/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
  79. package/dist/{public/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → esm/sdk/pendingWalletRecoveryCodeBackup-B-R_U34I.js} +1 -1
  80. package/dist/esm/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
  81. package/dist/esm/sdk/{recovery-entrypoint-9e3SXU3t.js → recovery-entrypoint-DJbMDC_m.js} +1 -1
  82. package/dist/esm/sdk/{registration-C988Nwzn.js → registration-Byl4l4yZ.js} +1 -1
  83. package/dist/esm/sdk/{registration-D4AijOa8.js → registration-C2fb9kRQ.js} +1 -1
  84. package/dist/esm/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
  85. package/dist/esm/sdk/registrationIntent-Do1tD1V7.js +1 -0
  86. package/dist/esm/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
  87. package/dist/{public/sdk/requireStepUpAuth-DC9LSyRI.js → esm/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
  88. package/dist/esm/sdk/resealedEnvelopeResult-CLW00Vbw.js +1 -0
  89. package/dist/esm/sdk/{routerAbNormalSigning-Da-uxxle.js → routerAbNormalSigning-D-UZmCBS.js} +1 -1
  90. package/dist/esm/sdk/runtime-auth-ufbVur2p.js +1 -0
  91. package/dist/esm/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-CagI2Q62.js} +1 -1
  92. package/dist/{public/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → esm/sdk/runtime-ecdsa-tempo-Rctxr0yM.js} +1 -1
  93. package/dist/{public/sdk/runtime-email-otp-CaxfpqKI.js → esm/sdk/runtime-email-otp-BQtcG-LF.js} +1 -1
  94. package/dist/esm/sdk/{runtime-export-Du5ugbzi.js → runtime-export-wTeEaqlk.js} +1 -1
  95. package/dist/esm/sdk/runtime-near-59yU_3ud.js +1 -0
  96. package/dist/esm/sdk/runtime-preferences-B9qLHX8W.js +1 -0
  97. package/dist/esm/sdk/runtime-recovery-DNyzdMBj.js +1 -0
  98. package/dist/esm/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-si1fGktB.js} +1 -1
  99. package/dist/esm/sdk/runtimeContext-ByeM6Z4Z.js +6 -0
  100. package/dist/{public/sdk/secp256k1--vF2pJgR.js → esm/sdk/secp256k1-CE7-q9Sn.js} +1 -1
  101. package/dist/esm/sdk/sessionObservationRevision-ihBwjS3y.js +1 -0
  102. package/dist/esm/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
  103. package/dist/{public/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → esm/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  104. package/dist/esm/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  105. package/dist/esm/sdk/signNear-DMpJFkwF.js +1 -0
  106. package/dist/esm/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
  107. package/dist/{public/sdk/signingFlow-C7fwkxPx.js → esm/sdk/signingFlow-BcetvUeS.js} +1 -1
  108. package/dist/{public/sdk/signingQueue-DvHGcaLc.js → esm/sdk/signingQueue-dMFOFOP5.js} +1 -1
  109. package/dist/esm/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  110. package/dist/esm/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
  111. package/dist/esm/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
  112. package/dist/esm/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
  113. package/dist/esm/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  114. package/dist/esm/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
  115. package/dist/esm/sdk/tx-confirm-ui.js +181 -18
  116. package/dist/esm/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
  117. package/dist/esm/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
  118. package/dist/esm/sdk/voiceid-host.js +1 -1
  119. package/dist/esm/sdk/wallet-iframe-host-ecdsa.js +1 -1
  120. package/dist/esm/sdk/wallet-iframe-host-full.js +1 -1
  121. package/dist/esm/sdk/wallet-iframe-host-near.js +1 -1
  122. package/dist/esm/sdk/wallet-iframe-host-runtime.js +1 -1
  123. package/dist/{public/sdk/wallet-recovery-jyfGoejZ.js → esm/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
  124. package/dist/esm/sdk/wallet-ui.css +1 -1
  125. package/dist/esm/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
  126. package/dist/{public/sdk/walletAuthority-DGdC9Glh.js → esm/sdk/walletAuthority-BTGAuOi8.js} +1 -1
  127. package/dist/esm/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
  128. package/dist/esm/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
  129. package/dist/{public/sdk/walletOwnershipGeneration-z9NXOk-b.js → esm/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
  130. package/dist/{public/sdk/walletRecoveryAdminProof-hytB9fXI.js → esm/sdk/walletRecoveryAdminProof-B4Ic07jY.js} +1 -1
  131. package/dist/{public/sdk/walletRecoveryCommit-sr8-RYvn.js → esm/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
  132. package/dist/{public/sdk/walletSessionAuthorizationStore-BEJyERPZ.js → esm/sdk/walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  133. package/dist/esm/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  134. package/dist/esm/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
  135. package/dist/esm/shared-ts/src/auth/externalAuth.js +53 -0
  136. package/dist/esm/shared-ts/src/near/nearClient.js +1 -1
  137. package/dist/esm/shared-ts/src/utils/errors.js +50 -2
  138. package/dist/esm/shared-ts/src/utils/index.js +1 -1
  139. package/dist/esm/voiceid-host.js +1 -1
  140. package/dist/public/headers.manifest.json +1 -1
  141. package/dist/public/sdk/{ConfirmationDrawer-BmzikAr4.js → ConfirmationDrawer-MJoE0AAo.js} +1 -1
  142. package/dist/{esm/sdk/NonceCoordinator-CcD2FqXh.js → public/sdk/NonceCoordinator-3YhmDTS5.js} +1 -1
  143. package/dist/{esm/sdk/SeamsWordmark-DqiC9-sd.js → public/sdk/SeamsWordmark-DwvPx2UA.js} +1 -1
  144. package/dist/public/sdk/{accountLifecycle-gm9X8nGm.js → accountLifecycle-6DHYWf0v.js} +1 -1
  145. package/dist/public/sdk/{adapters-e7twFGov.js → adapters-C-g_hkkZ.js} +1 -1
  146. package/dist/public/sdk/appearance-token-vars-01eH9pgA.js +1 -0
  147. package/dist/{esm/sdk/clientSessionPersistenceState-YvVHKRoe.js → public/sdk/clientSessionPersistenceState-BCkJAYSz.js} +1 -1
  148. package/dist/public/sdk/{collectAuthenticationCredentialForChallengeB64u-DEtxiKND.js → collectAuthenticationCredentialForChallengeB64u-I4wq8OGq.js} +1 -1
  149. package/dist/public/sdk/{commitQueue-CHJ7MHSI.js → commitQueue-CYruPlkm.js} +1 -1
  150. package/dist/public/sdk/configBuilder-DpChXfDO.js +1 -0
  151. package/dist/public/sdk/{configuration-DBEc3bsj.js → configuration-BAad7ngq.js} +1 -1
  152. package/dist/public/sdk/confirm-ui-em0vkd2m.js +2 -0
  153. package/dist/public/sdk/{device-linking-BsUTtSF7.js → device-linking-DiCNt3iA.js} +1 -1
  154. package/dist/public/sdk/{deviceLinkApproval-DAZTjrud.js → deviceLinkApproval-x3WkiYrd.js} +1 -1
  155. package/dist/public/sdk/{display-BYzolrBs.js → display-D0EPmU4w.js} +1 -1
  156. package/dist/{esm/sdk/ecdsaCapabilityManifest-CXVq8Qzb.js → public/sdk/ecdsaCapabilityManifest-DAJEVjlP.js} +1 -1
  157. package/dist/public/sdk/{ecdsaDerivationClientWasm-CVahDxLy.js → ecdsaDerivationClientWasm-AYOJgTJm.js} +1 -1
  158. package/dist/{esm/sdk/ecdsaDerivationExport-CkmSe0ao.js → public/sdk/ecdsaDerivationExport-DJKOzDbS.js} +1 -1
  159. package/dist/public/sdk/{ecdsaWalletRecords-zRvHKRTe.js → ecdsaWalletRecords-WLyq414E.js} +1 -1
  160. package/dist/public/sdk/{emailOtpEcdsaDerivationIdentity-0DIuRNRi.js → emailOtpEcdsaDerivationIdentity-HFQXc1Yw.js} +1 -1
  161. package/dist/public/sdk/{enrichDisplayModelWithAbi-CLn37drs.js → enrichDisplayModelWithAbi-O6Mw4i2E.js} +1 -1
  162. package/dist/public/sdk/errors-BJBDbwHk.js +1 -0
  163. package/dist/public/sdk/{evmCryptoWasm-B_p82tx9.js → evmCryptoWasm-BUPb4hBH.js} +1 -1
  164. package/dist/public/sdk/{export-viewer-host-3fosWJXJ.js → export-viewer-host-BSTfHhau.js} +1 -1
  165. package/dist/public/sdk/{exportKeypairOperation-pKQW5J7m.js → exportKeypairOperation-CjST_NUK.js} +1 -1
  166. package/dist/public/sdk/host-C51z-AxP.js +1 -0
  167. package/dist/{esm/sdk/icons-DDRXJ2W1.js → public/sdk/icons-BlMXolHv.js} +1 -1
  168. package/dist/public/sdk/{indexedDB-CWFDCCbP.js → indexedDB-C4SDsyOG.js} +1 -1
  169. package/dist/public/sdk/{intentDigest-B6EshTea.js → intentDigest-HvRsBQ1z.js} +1 -1
  170. package/dist/public/sdk/{lanes-C2sAP08w.js → lanes-BU-fGqY4.js} +1 -1
  171. package/dist/public/sdk/{localOnly-Jw9v9GU9.js → localOnly-Xs89Xajm.js} +1 -1
  172. package/dist/{esm/sdk/mountExportPrivateKeySurface-B_052qyI.js → public/sdk/mountExportPrivateKeySurface-CsUEKeum.js} +1 -1
  173. package/dist/public/sdk/{mountRecoveryCodeBackupSurface-PutmFjf9.js → mountRecoveryCodeBackupSurface-kFLo5zLk.js} +1 -1
  174. package/dist/public/sdk/{nearEd25519YaoMaterialActivation-C2QNLImD.js → nearEd25519YaoMaterialActivation-BfXmy3Jr.js} +1 -1
  175. package/dist/{esm/sdk/nearEd25519YaoSigningPreparation-K6n4Sq8_.js → public/sdk/nearEd25519YaoSigningPreparation-DHNk0F8e.js} +1 -1
  176. package/dist/public/sdk/nearRpcResults-CeHdqaS4.js +1 -0
  177. package/dist/public/sdk/{nonceLaneKeys-CZjeiii7.js → nonceLaneKeys-BF_UpvIy.js} +1 -1
  178. package/dist/public/sdk/{normalization-DA6o5MsH.js → normalization-Df9fZWJC.js} +1 -1
  179. package/dist/{esm/sdk/pendingWalletRecoveryCodeBackup-B-n7vmBS.js → public/sdk/pendingWalletRecoveryCodeBackup-B-R_U34I.js} +1 -1
  180. package/dist/public/sdk/{presignaturePool-DjTaB0nx.js → presignaturePool-BbvqRWYw.js} +1 -1
  181. package/dist/public/sdk/{recovery-entrypoint-9e3SXU3t.js → recovery-entrypoint-DJbMDC_m.js} +1 -1
  182. package/dist/public/sdk/{registration-C988Nwzn.js → registration-Byl4l4yZ.js} +1 -1
  183. package/dist/public/sdk/{registration-D4AijOa8.js → registration-C2fb9kRQ.js} +1 -1
  184. package/dist/public/sdk/{registrationAccounts-DI_vcT7G.js → registrationAccounts-4r74gX1l.js} +1 -1
  185. package/dist/public/sdk/registrationIntent-Do1tD1V7.js +1 -0
  186. package/dist/public/sdk/{registrationSignerPlan-_8gsSjC0.js → registrationSignerPlan-DK2b3N_p.js} +1 -1
  187. package/dist/{esm/sdk/requireStepUpAuth-DC9LSyRI.js → public/sdk/requireStepUpAuth-COqCGb1i.js} +1 -1
  188. package/dist/public/sdk/resealedEnvelopeResult-CLW00Vbw.js +1 -0
  189. package/dist/public/sdk/{routerAbNormalSigning-Da-uxxle.js → routerAbNormalSigning-D-UZmCBS.js} +1 -1
  190. package/dist/public/sdk/runtime-auth-ufbVur2p.js +1 -0
  191. package/dist/public/sdk/{runtime-device-link-DtjR-htE.js → runtime-device-link-CagI2Q62.js} +1 -1
  192. package/dist/{esm/sdk/runtime-ecdsa-tempo-BkUnzoX9.js → public/sdk/runtime-ecdsa-tempo-Rctxr0yM.js} +1 -1
  193. package/dist/{esm/sdk/runtime-email-otp-CaxfpqKI.js → public/sdk/runtime-email-otp-BQtcG-LF.js} +1 -1
  194. package/dist/public/sdk/{runtime-export-Du5ugbzi.js → runtime-export-wTeEaqlk.js} +1 -1
  195. package/dist/public/sdk/runtime-near-59yU_3ud.js +1 -0
  196. package/dist/public/sdk/runtime-preferences-B9qLHX8W.js +1 -0
  197. package/dist/public/sdk/runtime-recovery-DNyzdMBj.js +1 -0
  198. package/dist/public/sdk/{runtime-recovery-codes-DKjOU32G.js → runtime-recovery-codes-si1fGktB.js} +1 -1
  199. package/dist/public/sdk/runtimeContext-ByeM6Z4Z.js +6 -0
  200. package/dist/{esm/sdk/secp256k1--vF2pJgR.js → public/sdk/secp256k1-CE7-q9Sn.js} +1 -1
  201. package/dist/public/sdk/sessionObservationRevision-ihBwjS3y.js +1 -0
  202. package/dist/public/sdk/{signEvmFamily-DeCQOBYN.js → signEvmFamily-BY5jlZEG.js} +1 -1
  203. package/dist/{esm/sdk/signEvmFamilyWithUiConfirmForTempo-BIp-MeBV.js → public/sdk/signEvmFamilyWithUiConfirmForTempo-CrMIAXUe.js} +1 -1
  204. package/dist/public/sdk/{signEvmWithUiConfirm-BdLW7kqJ.js → signEvmWithUiConfirm-CGrLtMV6.js} +1 -1
  205. package/dist/public/sdk/signNear-DMpJFkwF.js +1 -0
  206. package/dist/public/sdk/{signatureUses-0z64Xpdj.js → signatureUses-kSrUHSSH.js} +1 -1
  207. package/dist/{esm/sdk/signingFlow-C7fwkxPx.js → public/sdk/signingFlow-BcetvUeS.js} +1 -1
  208. package/dist/{esm/sdk/signingQueue-DvHGcaLc.js → public/sdk/signingQueue-dMFOFOP5.js} +1 -1
  209. package/dist/public/sdk/surface-measurement-reporter-DXsvq401.js +1 -0
  210. package/dist/public/sdk/{thresholdEcdsa-CPVZNLEg.js → thresholdEcdsa-CqR1fFA-.js} +1 -1
  211. package/dist/public/sdk/{trace-BQv7E-bO.js → trace--mRP2OQc.js} +1 -1
  212. package/dist/public/sdk/{transaction-activity-olcDRay5.js → transaction-activity-DCzHGg3b.js} +1 -1
  213. package/dist/public/sdk/{transactionReviewAdmission-DPxuDgkU.js → transactionReviewAdmission-Cf_qUZJt.js} +1 -1
  214. package/dist/public/sdk/{transactionState-C8aYSDRA.js → transactionState-29T9xfvL.js} +1 -1
  215. package/dist/public/sdk/tx-confirm-ui.js +181 -18
  216. package/dist/public/sdk/{types-DOToeB6g.js → types-f7dyj5N6.js} +1 -1
  217. package/dist/public/sdk/{unlockedEd25519ExportRootCapability-CFmunau5.js → unlockedEd25519ExportRootCapability-yzxQjIFd.js} +1 -1
  218. package/dist/public/sdk/voiceid-host.js +1 -1
  219. package/dist/public/sdk/wallet-iframe-host-ecdsa.js +1 -1
  220. package/dist/public/sdk/wallet-iframe-host-full.js +1 -1
  221. package/dist/public/sdk/wallet-iframe-host-near.js +1 -1
  222. package/dist/public/sdk/wallet-iframe-host-runtime.js +1 -1
  223. package/dist/{esm/sdk/wallet-recovery-jyfGoejZ.js → public/sdk/wallet-recovery-BZB2Vu3X.js} +1 -1
  224. package/dist/public/sdk/wallet-ui.css +1 -1
  225. package/dist/public/sdk/{walletAuthMethodRecord-Bi78B6Ab.js → walletAuthMethodRecord-DLBB5fez.js} +1 -1
  226. package/dist/{esm/sdk/walletAuthority-DGdC9Glh.js → public/sdk/walletAuthority-BTGAuOi8.js} +1 -1
  227. package/dist/public/sdk/{walletCapabilityBindings-BRdFdh3l.js → walletCapabilityBindings-D5YYB7nN.js} +1 -1
  228. package/dist/public/sdk/{walletCustodyEcdsaContinuity-DdLNQs1M.js → walletCustodyEcdsaContinuity-C31YQ9av.js} +1 -1
  229. package/dist/{esm/sdk/walletOwnershipGeneration-z9NXOk-b.js → public/sdk/walletOwnershipGeneration-CgjCtPrV.js} +1 -1
  230. package/dist/{esm/sdk/walletRecoveryAdminProof-hytB9fXI.js → public/sdk/walletRecoveryAdminProof-B4Ic07jY.js} +1 -1
  231. package/dist/{esm/sdk/walletRecoveryCommit-sr8-RYvn.js → public/sdk/walletRecoveryCommit-Cc2LAkCS.js} +1 -1
  232. package/dist/{esm/sdk/walletSessionAuthorizationStore-BEJyERPZ.js → public/sdk/walletSessionAuthorizationStore-B9Vwkshr.js} +1 -1
  233. package/dist/public/sdk/warmSessionHydration-B-A5Tdx7.js +1 -0
  234. package/dist/public/sdk/{webauthnP256-DVlYEUsG.js → webauthnP256-BsQQPurm.js} +1 -1
  235. package/dist/public/wallet-assets.manifest.json +275 -251
  236. package/dist/public/wallet-service/index.html +4 -4
  237. package/dist/types/shared-ts/src/auth/externalAuth.d.ts +84 -0
  238. package/dist/types/wallet/src/SeamsWeb/operations/devices/walletHostOwnerAuthority.d.ts +2 -1
  239. package/dist/types/wallet/src/SeamsWeb/publicApi/auth.d.ts +1 -1
  240. package/dist/types/wallet/src/SeamsWeb/publicApi/types.d.ts +11 -0
  241. package/dist/types/wallet/src/SeamsWeb/walletIframe/client/router.d.ts +4 -0
  242. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/WalletHostRuntime.d.ts +4 -2
  243. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/createSessionCommands.d.ts +5 -2
  244. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/externalAuth.d.ts +29 -0
  245. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/requestRouter.d.ts +1 -1
  246. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/sessionObserver.d.ts +1 -0
  247. package/dist/types/wallet/src/SeamsWeb/walletIframe/host/ui/auth-menu/mountAuthMenuSurface.d.ts +1 -0
  248. package/dist/types/wallet/src/SeamsWeb/walletIframe/shared/messages.d.ts +5 -3
  249. package/dist/types/wallet/src/core/authMethods/hostPlugin.d.ts +1 -0
  250. package/dist/types/wallet/src/core/authMethods/plugins.d.ts +2 -0
  251. package/dist/types/wallet/src/core/rpcClients/near/NearClient.d.ts +13 -0
  252. package/dist/types/wallet/src/core/signingEngine/nearTransactionSubmission.d.ts +24 -0
  253. package/dist/types/wallet/src/core/signingEngine/uiConfirm/transactionReviewAdmission.d.ts +2 -0
  254. package/dist/types/wallet/src/core/types/linkDevice.d.ts +4 -5
  255. package/dist/types/wallet/src/core/types/seams.d.ts +29 -9
  256. package/dist/types/wallet/src/core/ui/messages.d.ts +1 -1
  257. package/dist/types/wallet/src/index.d.ts +1 -0
  258. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuButtonView.d.ts +2 -1
  259. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountSettingsDialog.d.ts +10 -0
  260. package/dist/types/wallet/src/react/components/AccountMenuButton/AuthenticationMethodsModal.d.ts +1 -2
  261. package/dist/types/wallet/src/react/components/AccountMenuButton/ExternalWalletSettings.d.ts +10 -0
  262. package/dist/types/wallet/src/react/components/AccountMenuButton/LinkedDevicesModal.d.ts +1 -2
  263. package/dist/types/wallet/src/react/components/AccountMenuButton/WalletSettingsLayout.d.ts +1 -0
  264. package/dist/types/wallet/src/react/components/AccountMenuButton/hooks/useProfileState.d.ts +2 -2
  265. package/dist/types/wallet/src/react/components/AccountMenuButton/icons/HoverArrowIcon.d.ts +2 -1
  266. package/dist/types/wallet/src/react/components/AccountMenuButton/types.d.ts +4 -3
  267. package/dist/types/wallet/src/react/components/ExternalNearWalletIcon.d.ts +5 -0
  268. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.d.ts +31 -0
  269. package/dist/types/wallet/src/react/components/HostedSeamsAuthMenu/types.d.ts +4 -0
  270. package/dist/types/wallet/src/react/components/externalWalletBrandImages.d.ts +3 -0
  271. package/dist/types/wallet/src/react/components/theme/design-tokens.d.ts +2 -0
  272. package/dist/types/wallet/src/react/context/reactLoginStateBuilders.d.ts +1 -1
  273. package/dist/types/wallet/src/react/index.d.ts +2 -0
  274. package/dist/types/wallet/src/react/types.d.ts +13 -3
  275. package/dist/types/wallet/src/voiceid-host.d.ts +2 -2
  276. package/package.json +1 -1
  277. package/dist/esm/react/components/AccountMenuButton/AccountMenuModal.js +0 -66
  278. package/dist/esm/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
  279. package/dist/esm/sdk/configBuilder-CSwJrmcR.js +0 -1
  280. package/dist/esm/sdk/confirm-ui-BpqwuMSl.js +0 -2
  281. package/dist/esm/sdk/errors-DLUmUo9m.js +0 -1
  282. package/dist/esm/sdk/host-aTcpYE27.js +0 -1
  283. package/dist/esm/sdk/registrationIntent-BVPp0k0k.js +0 -1
  284. package/dist/esm/sdk/resealedEnvelopeResult-BKATJaqW.js +0 -1
  285. package/dist/esm/sdk/runtime-auth-C_Y8gL_n.js +0 -1
  286. package/dist/esm/sdk/runtime-near-fas7U0MC.js +0 -1
  287. package/dist/esm/sdk/runtime-preferences-7-f34-by.js +0 -1
  288. package/dist/esm/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
  289. package/dist/esm/sdk/runtimeContext-DF8MdfXl.js +0 -6
  290. package/dist/esm/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
  291. package/dist/esm/sdk/signNear-DMzOU4dX.js +0 -1
  292. package/dist/esm/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
  293. package/dist/esm/sdk/warmSessionHydration-EstsrMF8.js +0 -1
  294. package/dist/public/sdk/appearance-token-vars-EYbmnHsJ.js +0 -1
  295. package/dist/public/sdk/configBuilder-CSwJrmcR.js +0 -1
  296. package/dist/public/sdk/confirm-ui-BpqwuMSl.js +0 -2
  297. package/dist/public/sdk/errors-DLUmUo9m.js +0 -1
  298. package/dist/public/sdk/host-aTcpYE27.js +0 -1
  299. package/dist/public/sdk/registrationIntent-BVPp0k0k.js +0 -1
  300. package/dist/public/sdk/resealedEnvelopeResult-BKATJaqW.js +0 -1
  301. package/dist/public/sdk/runtime-auth-C_Y8gL_n.js +0 -1
  302. package/dist/public/sdk/runtime-near-fas7U0MC.js +0 -1
  303. package/dist/public/sdk/runtime-preferences-7-f34-by.js +0 -1
  304. package/dist/public/sdk/runtime-recovery-DmY0ZJpf.js +0 -1
  305. package/dist/public/sdk/runtimeContext-DF8MdfXl.js +0 -6
  306. package/dist/public/sdk/sessionObservationRevision-DKTqqbGf.js +0 -1
  307. package/dist/public/sdk/signNear-DMzOU4dX.js +0 -1
  308. package/dist/public/sdk/surface-measurement-reporter-DvzNDnHy.js +0 -1
  309. package/dist/public/sdk/warmSessionHydration-EstsrMF8.js +0 -1
  310. package/dist/types/wallet/src/react/components/AccountMenuButton/AccountMenuModal.d.ts +0 -9
  311. /package/dist/esm/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
  312. /package/dist/esm/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
  313. /package/dist/esm/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
  314. /package/dist/esm/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
  315. /package/dist/esm/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  316. /package/dist/esm/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
  317. /package/dist/esm/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
  318. /package/dist/esm/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  319. /package/dist/esm/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
  320. /package/dist/esm/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
  321. /package/dist/esm/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  322. /package/dist/esm/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
  323. /package/dist/esm/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
  324. /package/dist/esm/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  325. /package/dist/esm/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
  326. /package/dist/esm/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
  327. /package/dist/esm/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
  328. /package/dist/esm/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
  329. /package/dist/esm/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
  330. /package/dist/esm/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
  331. /package/dist/esm/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
  332. /package/dist/esm/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
  333. /package/dist/esm/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  334. /package/dist/esm/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
  335. /package/dist/esm/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
  336. /package/dist/esm/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  337. /package/dist/esm/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  338. /package/dist/esm/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
  339. /package/dist/esm/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
  340. /package/dist/esm/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
  341. /package/dist/esm/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
  342. /package/dist/esm/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
  343. /package/dist/esm/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
  344. /package/dist/esm/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
  345. /package/dist/esm/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
  346. /package/dist/esm/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
  347. /package/dist/esm/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
  348. /package/dist/public/sdk/{accountIds-Dj_0GoY-.js → accountIds-CW2BP-d9.js} +0 -0
  349. /package/dist/public/sdk/{actions-BIdcxldy.js → actions-DrtSTGus.js} +0 -0
  350. /package/dist/public/sdk/{appearance-CAIe7Qed.js → appearance-DL7c6bML.js} +0 -0
  351. /package/dist/public/sdk/{authenticatorOptions-2_XK8aXv.js → authenticatorOptions-WCDKYRux.js} +0 -0
  352. /package/dist/public/sdk/{authorizationAdmission-BYwaSZYV.js → authorizationAdmission-28jo_IVJ.js} +0 -0
  353. /package/dist/public/sdk/{browser-B1qU6ouJ.js → browser-CKS7Tq2r.js} +0 -0
  354. /package/dist/public/sdk/{bytes-CA0mv-bG.js → bytes-DXo6uALR.js} +0 -0
  355. /package/dist/public/sdk/{canonicalSignerErrorCode-BHDPNkvJ.js → canonicalSignerErrorCode-CX5PBpkt.js} +0 -0
  356. /package/dist/public/sdk/{challengeDelivery-DWix1oso.js → challengeDelivery-Dj9HrjW9.js} +0 -0
  357. /package/dist/public/sdk/{confirmTypes-DmEPoxys.js → confirmTypes-BvVtQs-M.js} +0 -0
  358. /package/dist/public/sdk/{csp-stylesheet-CHtV6HyK.js → csp-stylesheet-DUSqfXvZ.js} +0 -0
  359. /package/dist/public/sdk/{digestEncoding-n8Kr2kow.js → digestEncoding-CqNXPZY9.js} +0 -0
  360. /package/dist/public/sdk/{ecdsaChainTarget-Lh24LLyA.js → ecdsaChainTarget-Bm5X4k-V.js} +0 -0
  361. /package/dist/public/sdk/{executeWorkerOperation-XmBNaxrV.js → executeWorkerOperation-C9FOCCR7.js} +0 -0
  362. /package/dist/public/sdk/{helpers-dZehRP4i.js → helpers-Dubwo5uK.js} +0 -0
  363. /package/dist/public/sdk/{jsonRpc-YKL5n8VL.js → jsonRpc-BVDv1wfm.js} +0 -0
  364. /package/dist/public/sdk/{keccak-BArcwgbj.js → keccak-mS0Mejjx.js} +0 -0
  365. /package/dist/public/sdk/{keyMaterialEnvelope-BsdlckmN.js → keyMaterialEnvelope-Dm2ZEilb.js} +0 -0
  366. /package/dist/public/sdk/{normalization-dgJxtZKK.js → normalization-B3i1-rPQ.js} +0 -0
  367. /package/dist/public/sdk/{operationFingerprint-DgpQfpM-.js → operationFingerprint-Bas59T7L.js} +0 -0
  368. /package/dist/public/sdk/{presignatures-CjcyX_-F.js → presignatures-BCeq56DG.js} +0 -0
  369. /package/dist/public/sdk/{prfCache-Ck1mh5YB.js → prfCache-DEHaUPSW.js} +0 -0
  370. /package/dist/public/sdk/{profileAccountProjection-dvLchPBo.js → profileAccountProjection-C5sNt-s2.js} +0 -0
  371. /package/dist/public/sdk/{promptText-BIv8lx7_.js → promptText-bcKcsSka.js} +0 -0
  372. /package/dist/public/sdk/{recoveryAuthorization-CMVdZ5OR.js → recoveryAuthorization-CQsjb8Tm.js} +0 -0
  373. /package/dist/public/sdk/{registrationAuthMethodInput-Be4Td0Ef.js → registrationAuthMethodInput-BR1WVbK3.js} +0 -0
  374. /package/dist/public/sdk/{sdkSentEvents-QPs69K3s.js → sdkSentEvents-DjOlKtdW.js} +0 -0
  375. /package/dist/public/sdk/{shared-hkHoIS9i.js → shared-CkHhXgFB.js} +0 -0
  376. /package/dist/public/sdk/{signer-worker-CmCKlJ__.js → signer-worker-BNodGJKY.js} +0 -0
  377. /package/dist/public/sdk/{signerDomain-BLnlQPAV.js → signerDomain-BAsLT3XN.js} +0 -0
  378. /package/dist/public/sdk/{signerSlot-DgLzb3Ee.js → signerSlot-D2RZnb27.js} +0 -0
  379. /package/dist/public/sdk/{types-COS7UL3R.js → types-C4OErbBf.js} +0 -0
  380. /package/dist/public/sdk/{walletCustodyOperation-CAnT3Ww-.js → walletCustodyOperation-DimzAbCB.js} +0 -0
  381. /package/dist/public/sdk/{walletSessionAuthorizationProjection-CMl69JGe.js → walletSessionAuthorizationProjection-BzUH6gHV.js} +0 -0
  382. /package/dist/public/sdk/{walletSessionAuthorizationStatus-C_q9eiOH.js → walletSessionAuthorizationStatus-DG7DPcgR.js} +0 -0
  383. /package/dist/public/sdk/{walletSessionFailure-ZfdbUAG-.js → walletSessionFailure-CxsVtroW.js} +0 -0
  384. /package/dist/public/sdk/{webauthnPromptCoordinator-DMETRUcN.js → webauthnPromptCoordinator-npsSRD51.js} +0 -0
@@ -0,0 +1,315 @@
1
+ import { nearWalletName } from "../../../externalNear/wallets.js";
2
+ import { walletDisplayText } from "../../../core/ui/messages.js";
3
+ import { SEAMS_STANDARD_WORDMARK_PATH } from "../../../core/signingEngine/uiConfirm/ui/seamsWordmarkPaths.js";
4
+ import { WalletText, useWalletLocale } from "../../context/WalletLocale.js";
5
+ import { useSeams } from "../../context/index.js";
6
+ import { Theme, useTheme } from "../theme/ThemeProvider.js";
7
+ import { HoverArrowIcon } from "../AccountMenuButton/icons/HoverArrowIcon.js";
8
+ import HostedSeamsAuthMenu from "./shell.js";
9
+ import { ExternalNearWalletIcon } from "../ExternalNearWalletIcon.js";
10
+ import { Component, createRef } from "react";
11
+ import { jsx, jsxs } from "react/jsx-runtime";
12
+ import "./WalletConnectorMenu.css";
13
+ //#region src/react/components/HostedSeamsAuthMenu/WalletConnectorMenu.tsx
14
+ /** Default wallet selection UI. Authentication stays on the isolated wallet origin. */
15
+ function WalletConnectorMenu(props) {
16
+ const { seams } = useSeams();
17
+ const { theme, tokens } = useTheme();
18
+ const locale = useWalletLocale();
19
+ return /* @__PURE__ */ jsx(Theme, {
20
+ tag: "div",
21
+ theme,
22
+ tokens: { [theme]: tokens },
23
+ children: /* @__PURE__ */ jsx(ConnectorPanel, {
24
+ ...props,
25
+ locale,
26
+ prepareAuthMenu: seams.authMenu.prepare
27
+ })
28
+ });
29
+ }
30
+ var ConnectorPanel = class extends Component {
31
+ state = { view: {
32
+ kind: "choices",
33
+ error: null
34
+ } };
35
+ root = createRef();
36
+ content = createRef();
37
+ heading = createRef();
38
+ observer = null;
39
+ unsubscribe = null;
40
+ pending = null;
41
+ componentDidMount() {
42
+ this.subscribe();
43
+ this.observer = new ResizeObserver(this.measure);
44
+ if (this.content.current) this.observer.observe(this.content.current);
45
+ this.measure();
46
+ }
47
+ getSnapshotBeforeUpdate() {
48
+ return this.root.current?.offsetHeight ?? 0;
49
+ }
50
+ componentDidUpdate(previous, previousState, previousHeight) {
51
+ if (previous.externalNear?.controller !== this.props.externalNear?.controller) {
52
+ this.unsubscribe?.();
53
+ this.cancelPending();
54
+ this.subscribe();
55
+ }
56
+ if (previousState.view.kind === "auth" && this.state.view.kind === "choices") {
57
+ const root = this.root.current;
58
+ if (root) {
59
+ root.style.height = `${previousHeight}px`;
60
+ root.getBoundingClientRect();
61
+ }
62
+ this.heading.current?.focus({ preventScroll: true });
63
+ }
64
+ this.measure();
65
+ }
66
+ componentWillUnmount() {
67
+ this.observer?.disconnect();
68
+ this.unsubscribe?.();
69
+ this.cancelPending();
70
+ }
71
+ subscribe() {
72
+ this.unsubscribe = this.props.externalNear?.controller.subscribe(this.refreshWallets) ?? null;
73
+ }
74
+ refreshWallets = () => {
75
+ if (this.pending && !this.pending.controller.getSnapshot().wallets.includes(this.pending.wallet)) this.cancelPending();
76
+ this.forceUpdate();
77
+ };
78
+ cancelPending() {
79
+ const pending = this.pending;
80
+ this.pending = null;
81
+ pending?.controller.disconnect();
82
+ }
83
+ measure = () => {
84
+ const root = this.root.current;
85
+ const content = this.content.current;
86
+ if (!root || !content) return;
87
+ root.style.height = this.state.view.kind === "auth" ? "auto" : `${content.offsetHeight}px`;
88
+ };
89
+ prepare = () => {
90
+ this.props.prepareAuthMenu();
91
+ };
92
+ openAuthMenu = () => {
93
+ const root = this.root.current;
94
+ if (this.pending || !root || this.state.view.kind !== "choices") return;
95
+ this.setState({ view: {
96
+ kind: "auth",
97
+ initialHeightCssPx: root.offsetHeight
98
+ } });
99
+ };
100
+ handleOutcome = (outcome) => {
101
+ switch (outcome.kind) {
102
+ case "cancelled":
103
+ this.setState({ view: {
104
+ kind: "choices",
105
+ error: null
106
+ } });
107
+ this.props.onClose?.();
108
+ break;
109
+ case "failed":
110
+ this.setState({ view: {
111
+ kind: "choices",
112
+ error: outcome.message
113
+ } });
114
+ break;
115
+ case "authenticated":
116
+ case "registered":
117
+ case "account_synced": break;
118
+ default: return assertNever(outcome);
119
+ }
120
+ this.props.onOutcome(outcome);
121
+ };
122
+ close = () => {
123
+ this.cancelPending();
124
+ if (this.state.view.kind === "auth") this.setState({ view: {
125
+ kind: "choices",
126
+ error: null
127
+ } });
128
+ this.props.onClose?.();
129
+ };
130
+ back = () => {
131
+ this.setState({ view: {
132
+ kind: "choices",
133
+ error: null
134
+ } });
135
+ };
136
+ connect = async (wallet) => {
137
+ const external = this.props.externalNear;
138
+ if (!external || this.pending) return;
139
+ const pending = {
140
+ controller: external.controller,
141
+ wallet
142
+ };
143
+ this.pending = pending;
144
+ this.setState({ view: {
145
+ kind: "choices",
146
+ error: null
147
+ } });
148
+ const result = await external.controller.connect(wallet);
149
+ if (this.pending !== pending) return;
150
+ this.pending = null;
151
+ if (!result.ok) {
152
+ this.setState({ view: {
153
+ kind: "choices",
154
+ error: result.message
155
+ } });
156
+ return;
157
+ }
158
+ this.props.externalNear?.onConnected(result.value);
159
+ };
160
+ renderChoices() {
161
+ const { options, externalNear } = this.props;
162
+ const snapshot = externalNear?.controller.getSnapshot();
163
+ const busy = this.state.view.kind === "auth" || (snapshot?.busy ?? false);
164
+ const seamsOption = options?.seams;
165
+ const rows = [];
166
+ for (const wallet of snapshot?.wallets ?? []) {
167
+ const appearance = options?.[wallet];
168
+ const unavailable = wallet === "hot" && externalNear?.controller.network !== "mainnet";
169
+ rows.push(/* @__PURE__ */ jsx(ConnectorOption, {
170
+ label: appearance?.label ?? `Connect ${nearWalletName(wallet)}`,
171
+ description: unavailable ? "Mainnet only" : appearance?.description ?? "Use your existing wallet",
172
+ icon: appearance?.icon ?? /* @__PURE__ */ jsx(ExternalNearWalletIcon, { wallet }),
173
+ disabled: busy || unavailable,
174
+ external: true,
175
+ onClick: this.connect.bind(this, wallet)
176
+ }, wallet));
177
+ }
178
+ return /* @__PURE__ */ jsxs("div", {
179
+ className: "seams-wallet-connector-choices",
180
+ children: [
181
+ /* @__PURE__ */ jsx("h2", {
182
+ ref: this.heading,
183
+ tabIndex: -1,
184
+ children: /* @__PURE__ */ jsx(WalletText, { copy: this.props.title ?? "Connect wallet" })
185
+ }),
186
+ /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(WalletText, { copy: this.props.description ?? "Choose how you’d like to get started." }) }),
187
+ /* @__PURE__ */ jsxs("div", {
188
+ className: "seams-wallet-connector-options",
189
+ children: [/* @__PURE__ */ jsx(ConnectorOption, {
190
+ label: seamsOption?.label ?? "Create a Seams Wallet",
191
+ description: seamsOption?.description ?? "Get started with a passkey",
192
+ icon: seamsOption?.icon ?? /* @__PURE__ */ jsx(SeamsConnectorIcon, {}),
193
+ disabled: busy,
194
+ external: false,
195
+ onClick: this.openAuthMenu,
196
+ onPrepare: this.prepare
197
+ }), rows]
198
+ }),
199
+ snapshot?.busy && /* @__PURE__ */ jsx("p", {
200
+ role: "status",
201
+ children: /* @__PURE__ */ jsx(WalletText, { message: "Complete the request in your wallet." })
202
+ }),
203
+ this.state.view.kind === "choices" && this.state.view.error && /* @__PURE__ */ jsx("p", {
204
+ className: "seams-wallet-connector-error",
205
+ role: "alert",
206
+ children: this.state.view.error
207
+ })
208
+ ]
209
+ });
210
+ }
211
+ render() {
212
+ let content;
213
+ switch (this.state.view.kind) {
214
+ case "choices":
215
+ content = this.renderChoices();
216
+ break;
217
+ case "auth":
218
+ content = /* @__PURE__ */ jsx(HostedSeamsAuthMenu, {
219
+ ...this.props.authMenu,
220
+ initialMode: this.props.authMenu?.initialMode ?? "register",
221
+ initialHeightCssPx: this.state.view.initialHeightCssPx,
222
+ placeholder: this.renderChoices(),
223
+ onOutcome: this.handleOutcome
224
+ });
225
+ break;
226
+ default: return assertNever(this.state.view);
227
+ }
228
+ return /* @__PURE__ */ jsxs("div", {
229
+ ref: this.root,
230
+ className: `seams-wallet-connector ${this.props.className ?? ""}`,
231
+ style: this.props.style,
232
+ "data-connector-view": this.state.view.kind,
233
+ children: [
234
+ this.state.view.kind === "auth" && /* @__PURE__ */ jsx("button", {
235
+ type: "button",
236
+ className: "seams-wallet-connector-back",
237
+ "aria-label": walletDisplayText(this.props.locale, this.props.backLabel ?? "Back to wallet selection"),
238
+ title: walletDisplayText(this.props.locale, this.props.backLabel ?? "Back to wallet selection"),
239
+ onClick: this.back,
240
+ children: /* @__PURE__ */ jsx(HoverArrowIcon, {
241
+ size: 16,
242
+ direction: "left"
243
+ })
244
+ }),
245
+ this.props.onClose && /* @__PURE__ */ jsx("button", {
246
+ type: "button",
247
+ className: "seams-wallet-connector-close",
248
+ "aria-label": walletDisplayText(this.props.locale, this.props.closeLabel ?? "Close"),
249
+ onClick: this.close,
250
+ children: /* @__PURE__ */ jsx(ConnectorCloseIcon, {})
251
+ }),
252
+ /* @__PURE__ */ jsx("div", {
253
+ ref: this.content,
254
+ className: "seams-wallet-connector-content",
255
+ children: content
256
+ })
257
+ ]
258
+ });
259
+ }
260
+ };
261
+ function ConnectorOption(props) {
262
+ return /* @__PURE__ */ jsxs("button", {
263
+ type: "button",
264
+ className: "seams-wallet-connector-option",
265
+ disabled: props.disabled,
266
+ onClick: props.onClick,
267
+ onPointerEnter: props.onPrepare,
268
+ onFocus: props.onPrepare,
269
+ onTouchStart: props.onPrepare,
270
+ children: [
271
+ /* @__PURE__ */ jsx("span", {
272
+ className: "seams-wallet-connector-icon",
273
+ "aria-hidden": "true",
274
+ children: props.icon
275
+ }),
276
+ /* @__PURE__ */ jsxs("span", {
277
+ className: "seams-wallet-connector-label",
278
+ children: [/* @__PURE__ */ jsx("strong", { children: /* @__PURE__ */ jsx(WalletText, { copy: props.label }) }), /* @__PURE__ */ jsx("small", { children: /* @__PURE__ */ jsx(WalletText, { copy: props.description }) })]
279
+ }),
280
+ /* @__PURE__ */ jsx(HoverArrowIcon, {
281
+ size: 16,
282
+ direction: props.external ? "up-right" : "right"
283
+ })
284
+ ]
285
+ });
286
+ }
287
+ function ConnectorCloseIcon() {
288
+ return /* @__PURE__ */ jsx("svg", {
289
+ width: "20",
290
+ height: "20",
291
+ viewBox: "0 0 24 24",
292
+ fill: "none",
293
+ stroke: "currentColor",
294
+ strokeWidth: "1.5",
295
+ "aria-hidden": "true",
296
+ children: /* @__PURE__ */ jsx("path", { d: "m6 6 12 12M6 18 18 6" })
297
+ });
298
+ }
299
+ function SeamsConnectorIcon() {
300
+ return /* @__PURE__ */ jsx("svg", {
301
+ width: "36",
302
+ height: "36",
303
+ viewBox: "1130 0 300 282",
304
+ "aria-hidden": "true",
305
+ fill: "currentColor",
306
+ children: /* @__PURE__ */ jsx("path", { d: SEAMS_STANDARD_WORDMARK_PATH })
307
+ });
308
+ }
309
+ function assertNever(value) {
310
+ throw new Error(`Unexpected wallet connector state: ${String(value)}`);
311
+ }
312
+ //#endregion
313
+ export { WalletConnectorMenu };
314
+
315
+ //# sourceMappingURL=WalletConnectorMenu.js.map
@@ -78,6 +78,7 @@ function hostedAuthMenuEffectConfigKey(config) {
78
78
  const normalized = buildHostedAuthMenuOpenRequest({
79
79
  authMenuSessionId: configSessionId,
80
80
  initialMode: config.initialMode,
81
+ initialHeightCssPx: config.initialHeightCssPx,
81
82
  registrationAccountInput: config.registrationAccountInput,
82
83
  showRegistrationInput: config.showRegistrationInput,
83
84
  showProgress: config.showProgress,
@@ -86,6 +87,7 @@ function hostedAuthMenuEffectConfigKey(config) {
86
87
  });
87
88
  return JSON.stringify({
88
89
  initialMode: normalized.initialMode,
90
+ initialHeightCssPx: normalized.initialHeightCssPx,
89
91
  registrationAccountInput: normalized.registrationAccountInput,
90
92
  showRegistrationInput: normalized.showRegistrationInput,
91
93
  showProgress: normalized.showProgress,
@@ -101,6 +103,7 @@ var HostedAuthMenuSessionController = class {
101
103
  anchorElement;
102
104
  authMenuSessionId;
103
105
  initialMode;
106
+ initialHeightCssPx;
104
107
  registrationAccountInput;
105
108
  showRegistrationInput;
106
109
  showProgress;
@@ -119,6 +122,7 @@ var HostedAuthMenuSessionController = class {
119
122
  this.anchorElement = args.anchorElement;
120
123
  this.authMenuSessionId = args.authMenuSessionId;
121
124
  this.initialMode = args.initialMode;
125
+ this.initialHeightCssPx = args.initialHeightCssPx;
122
126
  this.registrationAccountInput = args.registrationAccountInput;
123
127
  this.showRegistrationInput = args.showRegistrationInput;
124
128
  this.showProgress = args.showProgress;
@@ -151,6 +155,7 @@ var HostedAuthMenuSessionController = class {
151
155
  request = buildHostedAuthMenuOpenRequest({
152
156
  authMenuSessionId: this.authMenuSessionId,
153
157
  initialMode: this.initialMode,
158
+ initialHeightCssPx: this.initialHeightCssPx,
154
159
  loginTarget: { kind: "discoverable" },
155
160
  registrationAccountInput: this.registrationAccountInput,
156
161
  showRegistrationInput: this.showRegistrationInput,
@@ -269,12 +274,13 @@ function forwardHostedAuthMenuOutcome(terminalGateRef, onOutcomeRef, outcome) {
269
274
  if (isTerminalHostedAuthMenuSuccess(outcome) && terminalGateRef.current) terminalGateRef.current.completed = true;
270
275
  onOutcomeRef.current(outcome);
271
276
  }
272
- const HostedSeamsAuthMenu = ({ initialMode = "login", registrationAccountInput = "implicit_wallet", showRegistrationInput = false, showProgress = false, copy, externalAuthBroker = null, onOutcome }) => {
277
+ const HostedSeamsAuthMenu = ({ initialMode = "login", initialHeightCssPx, placeholder, registrationAccountInput = "implicit_wallet", showRegistrationInput = false, showProgress = false, copy, externalAuthBroker = null, onOutcome }) => {
273
278
  const { seams, isLoggedIn } = useOptionalSeams();
274
279
  const terminalGate = terminalGateFor(seams);
275
280
  syncTerminalGate(terminalGate, isLoggedIn);
276
281
  const effectConfigRef = React.useRef({
277
282
  initialMode,
283
+ initialHeightCssPx,
278
284
  registrationAccountInput,
279
285
  showRegistrationInput,
280
286
  showProgress,
@@ -288,6 +294,7 @@ const HostedSeamsAuthMenu = ({ initialMode = "login", registrationAccountInput =
288
294
  const anchorRef = React.useRef(null);
289
295
  effectConfigRef.current = {
290
296
  initialMode,
297
+ initialHeightCssPx,
291
298
  registrationAccountInput,
292
299
  showRegistrationInput,
293
300
  showProgress,
@@ -310,6 +317,7 @@ const HostedSeamsAuthMenu = ({ initialMode = "login", registrationAccountInput =
310
317
  anchorElement,
311
318
  authMenuSessionId: createHostedAuthMenuSessionId(),
312
319
  initialMode: config.initialMode,
320
+ initialHeightCssPx: config.initialHeightCssPx,
313
321
  registrationAccountInput: config.registrationAccountInput,
314
322
  showRegistrationInput: config.showRegistrationInput,
315
323
  showProgress: config.showProgress,
@@ -333,7 +341,7 @@ const HostedSeamsAuthMenu = ({ initialMode = "login", registrationAccountInput =
333
341
  style: {
334
342
  display: "block",
335
343
  width: "min(100%, 420px)",
336
- minHeight: "var(--seams-auth-menu-height, 450px)",
344
+ minHeight: `var(--seams-auth-menu-height, ${initialHeightCssPx ?? 450}px)`,
337
345
  position: "relative",
338
346
  boxSizing: "border-box",
339
347
  margin: 0,
@@ -344,9 +352,10 @@ const HostedSeamsAuthMenu = ({ initialMode = "login", registrationAccountInput =
344
352
  style: {
345
353
  position: "absolute",
346
354
  inset: "0 0 auto",
347
- opacity: "var(--seams-auth-menu-placeholder-opacity, 1)"
355
+ opacity: "var(--seams-auth-menu-placeholder-opacity, 1)",
356
+ pointerEvents: "none"
348
357
  },
349
- children: /* @__PURE__ */ jsx(SeamsAuthMenuMock, { initialMode })
358
+ children: placeholder ?? /* @__PURE__ */ jsx(SeamsAuthMenuMock, { initialMode })
350
359
  })
351
360
  });
352
361
  };
@@ -0,0 +1,7 @@
1
+ //#region src/react/components/externalWalletBrandImages.ts
2
+ const meteorWalletIcon = "data:image/svg+xml," + encodeURIComponent("<svg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 400.04 400.04\">\n <defs>\n <linearGradient id=\"a\" x1=\"215.39\" y1=\"239.47\" x2=\"382.38\" y2=\"239.47\" gradientTransform=\"translate(-122.96 -148.16)\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\".07\" stop-color=\"#0f0f36\"/>\n <stop offset=\".76\" stop-color=\"#232371\"/>\n </linearGradient>\n <linearGradient id=\"b\" x1=\"285.49\" y1=\"335.04\" x2=\"469.44\" y2=\"335.04\" gradientTransform=\"translate(-78.4 -231.71)\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0\" stop-color=\"#0f0f36\"/>\n <stop offset=\".8\" stop-color=\"#232371\"/>\n </linearGradient>\n <linearGradient id=\"c\" x1=\"298.99\" y1=\"428.49\" x2=\"366.74\" y2=\"428.49\" gradientTransform=\"translate(.74 -227.54)\" xlink:href=\"#a\"/>\n <linearGradient id=\"d\" x1=\"36.6\" y1=\"332.92\" x2=\"431.62\" y2=\"332.92\" gradientTransform=\"rotate(-45 58.56 313.83)\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0\" stop-color=\"#479ff5\"/>\n <stop offset=\".22\" stop-color=\"#405ee5\"/>\n <stop offset=\".35\" stop-color=\"#523bda\"/>\n <stop offset=\".43\" stop-color=\"#5a55ce\"/>\n <stop offset=\".56\" stop-color=\"#5a55ce\"/>\n <stop offset=\".76\" stop-color=\"#3b3cbb\"/>\n <stop offset=\".87\" stop-color=\"#171e9b\"/>\n <stop offset=\"1\" stop-color=\"#171e9b\"/>\n </linearGradient>\n </defs>\n <path d=\"M105 65.29h128.39a26 26 0 0 1 26 26 26 26 0 0 1-26 26H105a12.54 12.54 0 0 1-12.57-12.49v-27A12.54 12.54 0 0 1 105 65.29Z\" transform=\"rotate(-45 175.92 91.31)\" fill=\"url(#a)\"/>\n <path d=\"M220.2 76.74h144.24A26.59 26.59 0 0 1 391 103.33a26.59 26.59 0 0 1-26.59 26.59H220.2a13.11 13.11 0 0 1-13.11-13.11v-27a13.11 13.11 0 0 1 13.11-13.07Z\" transform=\"rotate(-45 299.06 103.33)\" fill=\"url(#b)\"/>\n <rect x=\"299.73\" y=\"176.9\" width=\"67.75\" height=\"48.08\" rx=\"24.04\" transform=\"rotate(-45 333.6 200.95)\" fill=\"url(#c)\"/>\n <path d=\"m339.09 99.35-64.8 64.8a25.5 25.5 0 0 1-36.05 0 25.49 25.49 0 0 1 0-36L252 114.37c8.68-8.69 9.33-22.93.81-31.77a22.3 22.3 0 0 0-31.81-.29l-60.82 60.83a25.49 25.49 0 0 1-36 0 25.5 25.5 0 0 1 0-36.06l20.26-20.27a22.31 22.31 0 0 0-.3-31.83c-8.84-8.52-23.08-7.86-31.76.82l-55 55c-.26.25-.48.53-.72.79A163.53 163.53 0 0 0 287.8 342.86l-.2-.2c.26-.24.53-.46.79-.72l97.09-97.09c8.68-8.68 9.34-22.92.81-31.76a22.31 22.31 0 0 0-31.83-.3s18.18-18.15-9.8 9.86a23.25 23.25 0 0 1-32.9 0 23.25 23.25 0 0 1 0-32.9l59.39-59.39a22.31 22.31 0 0 0-.3-31.83c-8.85-8.53-23.08-7.86-31.76.82Z\" fill=\"url(#d)\"/>\n <rect x=\"62.59\" y=\"94.34\" width=\"50.97\" height=\"25.49\" rx=\"12.74\" transform=\"rotate(-45 88.07 107.1)\" fill=\"#a4a1ef\"/>\n <circle cx=\"124.11\" cy=\"71.04\" r=\"12.74\" fill=\"#c2bffc\"/>\n <rect x=\"208.62\" y=\"89.84\" width=\"38.23\" height=\"25.49\" rx=\"12.74\" transform=\"rotate(-45 227.74 102.58)\" fill=\"#786bee\"/>\n</svg>\n");
3
+ const hotWalletIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARkAAAEYCAYAAABoTIKyAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAALCFSURBVHgB7f0J3CbXVR8In/O8W+/al5YsyZY3LdZmyZbxhlgNxjargDAQZhJgIJAh5Bu2CYvzMSHfL/w+MpMhMGQGSEgCAUKYAGH3ji1blixZsmXLqyxZu9Rq9d7vUmduVd3lbLeqnre7pZbcR3r7qbr33HO3c/733KWqEE7RpoiI8Nu//duX7rj//i1nEi2F+6XDh2FpcXG2ZTZb29XMZjupaXYQzXYQ4paQYjsCbEPCrYS0AoDbgGBHCF9GbH9h1oT7GcAiESwC4o4un8CISDuBcBZzDmJgZ8uPftFavl1j5QfshU+K17y1+zGZ89FeL7AXj6shq0MiK6R9oWmanokOhFZaDw20Gu4OQYOroVVa/rVwfzAwHAzdtzqDJvzC4dDCR2k22zdrrzc29jYLi4cXGti3vt4c2boV1o6srBzFfftWX/7yl6/9/u///lrbIXCKJhPCKarSy1/+up1bt26c1SzAmUjNOU1Du3FG5wQVO78hPCso9jlB608PCn1GaMgzwvUZoUVX+tSOxUVDPB6NjrXAqcDR3mJrj/1vooQVx0qdHAY8EhDgmMHoWJLX8VCGBjA5HNrnqRD2NBI9CTh7KtyHX3gkRD62APTYBtGjgAtPLTT4ZNMcevyuu+46CKdI0CmQCXTzzTcvfOKzD7wMm+blCM0Lg9PwYoDm0tA85wcFOzuwnN15HpsYro9XA+NUBgZkFIuJXuLjhSZDRKpcUO7JKSePFzJGsths0XR2Y6BTCW8QcH+4fyJcPxn+Hg4N/iA09Onga352A5uP3vzWt37x7W9/ewNfovQlCTJXXnnl8sLKjlcSbNwAsHA9NM2rCehcbKcoRFs6ptwyY3MFn46Xt+IZg8vIiSrAonjGCokTkxz/mVKUy0CSJgg/XuWYL73nqqUoPBIKvp8AHwozrNupgffjIn24OXLpvR//+B+swpcIPe9Bpl07ufHGG888vAYvC1OdVzcb8JagtK8LEVs7BjFXIOMRSPIXHzwYmodGAYQhTb5NQDKAQsdarhNNk0GB9cUUsKmJOBG8PVVQMHRQP20kgZQBdPaH23c1RO9aWKD3bl9evu+WW27ZA89Tet6CzNWvfe25zcG114caflWo5FcFT+Wl2C6KGlDR/jyjdo11ZI2Pw868NGkKNMUrmSpvgH+sDpPryFDDmy1NoU3hCA2n22xZePrpzExviDWI05Ex5rYAR+/ADXz31q2zOz70oQ89Cs8jel6BzE033bT45P6jL8Fm/fvCKPFNIeiSMAVa7GNpeOic0hLa0uYAgKnZbEbeNACI+zI1Tt9Jk/EA4zPHSXyyxGMGPMnjYR7d1KnVvLRJJwqGPJ000FEf306h7pnN4D8vIf3hW9/61k89H9Zynhcgc/3112872uC3hi3IH2gQbwiV2kLMS8E8DUqdyhJTnINMVKF5PZep/AgwWSjOFUdOKfrrTsdNqE8Ovk7G5eEAK3EMVObzKqaB2BziNkF83UZ7x7HOUV9ZXxwJ0PPuGc7+t/WjB9/18Y9//Dm7hvOcBZmA8LM/+ZM/ecHRZhY8FvrHoXsu4fNffl22Mpgfbzq7TjiRZ6ohZt4p1j0QhQMJUO9N64WNiGp6WWceAAVfer6fjxvtYO8gDQ3IIhvkZw1++TTgTqHJaXKkp3fFo+GsXfVDeGiZ+2A2+8WFZvsf3Hnnu/fCc4yekyBz9dd+7XZ67KnvIqR/HHrksi6wHQWq2xG8Y4fGyMIxD00CIZ3twKylTtTDwvA0X/AnZlReguTRuVesvfupzatqMGvjiNVlspfhFPNYp0VTF5FpIs+8ANUzR90Uo45iyXoNn5zR7P+3sXbwD4NncwCeI/ScApkwLVpa3Vj4JsDmn4d2vxTbo5ct0ns7RHqWYFwHn+ZpkHmmTC5zcrRgirdCDKkQYFIa8DNlnGjCeLQC66nzI9bMcWIWfj2Qt8BEg60BXXko9SNNTAOCvRpJw9Fz0fgwRpZZeLYFSSl5nRRbEfGD4e+f0Ysv+auP/8HJvxX+XAEZvOq6G74q/PxMAJU3BFCZmZNm7sIawDxrLsfFg0mDvjewgz/e1+V6KFS8Ej9NTMdicNDzKLfHUxlEjsYxQsvcQYU/vaPq9EqPJI7YgfLpgCleFcJ0z2Yy6W7hN8TgmS0DhN9mhvjuBcCfvOOOW2+Dk5hOepC58sqbduDSwX8VWvt7Q2ln6PnK/Hy8AB+vq+tqMmnaMxY/srbimQPCQID21FjZEWrhfsHQ9SaGaWxSNEliBVXJjOhFKrmlKKBTUgpIdgtBA8UyYQzXawnnAhBgsjSAaG+morPusFLAZzXox7+47CUv/IU/OEm9mpMWZLodo/XZt4QS/n9Di74oo3gX6w07bN1gEzQKHhPis57MkaZcDE2DkjkVY8vt4OklgiNnygoI42ZyqwMtK92QQ2kLV1ZlPAijAZdBAovQCMs7B+DU4o/3dngp/xyCU2fw+wgymLe/MWx9b/zgR2+//W9Ptgc4T0qQ6Q7SHVr7ldB+N/ORMpP2YroOaP391BHxeoBqXoXmGUwMGijG0+rBzE5zkEX71jYVyIbqaOI000DjTDSRqiM5ZLg0FkY6ztayKoOcMBgP4xHzeEVwrLwDYNuRcpsD2BydAf7aDLb/05NpF+qkA5mrrr3hzaFY/zrg9AvTNCEv7popUUyUO4MBjVMzf8ZfJ6wFEoxOiwZlxAhUpdHTGRcICBxwmgMsudLieNpjJob7QzzsRwdXkqjRHfjiMufhAWTDYCLYMIM/LkAzRQE7RqZwzu4pxWtpFnhfA/TdH7/ztvfDSUAnDci0Dy3Olrf9bGipfxzaalsb1hWOu4oYQ82Oh/JmajQKDtFdhxGjPQaA0QvC3viLThpSZRwFFQbAJ+qxhClEU+ImTGsG5ThTZw44FmyUPGf8Yqw2YGRqePy9GjYyiNml8WR4iqdhNvuZb33bm3/12T41fFKAzJXXv/5iXD/8b0Kjvam9lx4MqLkowPiZFxk+pZKjXg3Olwb5r5zrASoXTKwqYH164wUiMFFOfgrTjMy8nkITEkyhCmAkR3OIZyyMn04Y4+PrFj1hnT/9mxtjAoA4Nq8LR1DXUKiFm7bXAONJxLKJChJsAv0ZrB/5wY997GMPwLNEzzrIXHXt9d8UivFvQrOc0wWwo9Xu9GjCQ4uaxsDAtSnmpc4jc2i9RI07bp6jnpATMZwPKxdfmGAFlZA3heZDobHemrJAS87NJLAR8ba3x/IZBYgJ0yhXtgrHMb4MnPEGBzJFU/fPhIH7++6+48PvgWeBFuBZovZhxp2nn/N3Q1v8Wrg9K4UjesMwOtZbV3IE5UkM8Bkeng36cr3pTKfC6VkpkGqMIM+qYErD/hBleTTY8CZIvLU/YPztRgPG9krXJT3afFR+yMqPcRs8pfP5nbKIPyYvxmJuE6ymA5VXLR7cNmBtjLxt7Tlo0fbo9zconszrMQ6lVffkxrPK8iWDDmhAVrLdaUo6KAtzZmjhm3bvvuCLP/SDP3Dvu9/97vlG6WOkic1yfOmFN920ZcfeQz8L0Px4uF0SkagmE3o4Gjm1K9LCMLnKg9N4sRKhwSVfO2cgcOiaKVWtHm6ZsBbvreMUBUY9hAth3lzKaWH1rBhfFRGG4XoifURXyjk9G1IBo7y5SPZA32Y8GzdsxIw36/UIBtOhDDKJPBmr0OBPnH3m9n8dgGYdniF6xkHm2mtvOn0dD/zfoQW+NRciKvTgIwLCEoYNdoyqRovjfGOGzEdHARYj8nEAVMYAbjhegYtSztqBPpdwjKXGYHd+RJHI42dFQgUOAECVac8QKNQBBBXvyC4UDQOZCec4NsJv0rtgkkiBfrITgKE1mhAx+82zT9v2wwFojsAzQM/odKk9YLcB6/+WGMD0nkucTPBnUpBkG05AkalAY4wbYNSD0W50+fFdbWQ3Yqqj+QDMNMjlQ7CuP3h/aUrEpyQsXqfz5CD7jX8ztOUwU6RqmWydRJySU3ixTEUjHGLUCxStXmm3qlx7DbnNZP6c+qIQgJrWGVk6HCvhA+kyH8IEvWZSYgJdNkl03aEj6ysXXXj+HQ8//PAhOME0Xv7jRJdf99pLFmj1V8Plm0EXgLnYPVHREoP5Xth4RdC5ifpbRGJdUcS9CEjTIiq8aNPp/L04dDK2cXz8RXZNruyUlqDeBoOD5XEicgKcAT5GYWawzzNp70S1DIHlUX1MrkeBZsRnPep7Lk5e3j3oskzkF484zEWskmynVtFqEPwnzdrSD9xzz4l99eczAjLXBYBZp9U/CtW8Lmes4Z332hwlmwtcWCBWLMsaKIkYO+WJqpiAUgGMCzQjIOQDFQlIkWWhOqABTF5nGiRUgKCWWVRQlahyUzNUUgHkJrcQTCPTKs6jw60cHIjzZcwLNKNpYE5iDwaXJXbISxJsaeIdYYv75rvvvvspOEF0wkHmuuted8EaHf29cPn6nKled+GqiWNqGtk2E6+zqfBW77EGBiSdLxgAEBwOR8+janeFyJfd+zPkAqffRhTTwCSQPR7krUtQjY/fjxlxluWAjJDjA42UAQMy+Au11HoNTayLutgsoNAojLfEGzqNDuSPNv3A+Merh/Z/97333rsfTgCdUJBpF3k38MC/C/V4m8xVvWCqo4lY7YBEjYamH248VAAGmWHGQuSTtwoUjQczkmdZcwCWR8wvAZgnl92M10kqWK3ppivDfH780HRgCHhqoMIvrWfSC+TGSNnQKmAyADT9NeYC8LM2GjwJdRkLuJk22CTYTGty1ai1ESXJDA0Q1tx+e33L0o/dcwK+mnDCFn7jLtKvQVzklcaBvXEOei11H38IYJD9qSznAhiMacz0J8lhC2z83IjLq8NTHPaqWvhRxivZQi7Kuoq/FI/xbAtaOYlvxmWl8uQ0pOQBi1PlSOE8HaCQByr/zkNTaXn/1uoNOjzLU22YoBvZNfj9BFiRmdot/oNshxNBJuDp00Bk5cnMRdgE0m0yzMkYs2ODIF4fkj/TApfNNpqzrrjsZX9z3333Hdft7RMCMu1zSLBAvxwuv7cLYFrKV/A7qiKtbUasxtRTcQX0+bgyMA9CKHNRUHAVEmV+FUMRhgTcGME3XABl4ACTdoNynbD7MHYy9hkyo9NlQCUL4o4SQpRhFbzjgcIDtTIzg+R5ZwMGa9TgtAPvg2L4tkygQStJ5WGo0oCK8+IFb3slgQRYuWueo+DVYV7kMRPT9DiDEK9NKeVsv+pxw8HDa0dveuPr3n/PPfdM9FPHaRGOP80WVrb/eNM0f48HdlURjwcA67UUwEne6w734txwJhrddEV7NVjoqQqgX460JpLC0SsD6LT9lAMr0yFEr6xKNuprYuUscrnTPkMEcwoER9pwJBxHeNOaiDjqhnKdgkQbUT/FUXxphoYlWV8/lrZfYsijMxOa5kpsLzALKlJRpyMnT5QFKpMn9Ry9p9ZcFhOKvB0cfd28xZf1Bf5y+Wq/Iv3svZ+5b1+4/FdwnAjhONMrXvmqbwn1+o/5c6+gEDNXdL5mQ3NHTrjDj176pPTxGivrLZX0nqF7o166yPnEXAs4UBVcxoCqlDOlIz+dIlQR8yiA12vz9KRew+iNkmS8c52NV61j8M/ekImryyTicqlokjJyUuUW97xXia+/SLARZaiViaGYqLdq2CntXOThNAGIzmE9OBKCvvp4vSriuILMFdfdeMUCbNwWCri1R3IsHgzyViTrZmyikHU0hpIXTjA8VKADHkg44MKqxeOx5rlABUSwAlIu4PBRtwB2tYyKBttC1YXpvriWNzJoyEi8IM1fAxph2FQxZAMENrxPL9P5oKHzHgKb9DgEWVk6X4TBXTNdH6jFTQl3+kliIRuySMM6fAoX4W133XbbvXCMdNxApttJggPvpHgWxpyD8dXwmAqHzs2QEbn3OV0pX3aoo/GPeRXD4NJeUBVEtOxaeC7PAHCiyHQcULz2PV4KoUd2FmEMbQh4fI8kyqV07YCLBhJWHJ8Xc7n581MeaNVAogcGXR4CAzo0XGcRPgGoa+TzpUaICsCXMEB7NbM/27l14dtuueWWw3AMNIPjQO0T1Ruw/19mgEkRNLUp5yNt+Dx8sowshAZBxItDcP4EwBCUQ3pkFk7Fjk4KY3JkeC+r2wmCSjosMmdQ/tICZs6P3WceoHhNgk9f57/Il3+TLF6G7q9963t54noGaYGZchvoMnvtOlNlLm2SyqefLGftyPpkhn77ljBifU5m+sl/UemGiENi/U+SjyA/fufplqe/6ER4fNMpjVIE+fBoysTYa/PmA4fXfqn9kCIcAx1beSO94rpX/0Og5pe7707HqZH/sGNE0U0WDAcYscKHitePkw8zuh4JWqXqrrEAyxBvdUoEkBdtzRrLvGVhAbqtymMHKO+FnChYn8NnvFwuqXwpK2pqkcrRsW4gReMtuNcDPHUvp4/zvAgi6ylRVS6yWlTym6t8KOPQr1/1nvGWXqzbkzqDyChmTFLhnUcPWs6NDZj9nXvuvPUPYJOEcIx05ZWvvma21LwnFO80+6hArIBwyWrFoGEWJw5xnA/ZhQ0fBpd0rdddkNlfMXbywQUcoFD5mRFP5Zfk+uDEZaBIA7xsXhuncrBAVrVjIlI3FtJIGZ8CBGF89hUQdWDwwhG86c5gWgE+HLgkL7dVE+fI4mXh8TqdkVPBEoVVVR6Xy0vMtrcZ6Ny/hhtfdu8ddzwEm6Bj0qX2PAwub39P8GJec6xey5hioxOAAzxY4S3hzHOorZkATPYkijdST1/fiaIBmWN5aw9I14+rd7nw2jqDDXdRhrTYCx8YnUvJyoUuXTHUUgi90OulnxtsvLRMpswDqwCUwjywsGBV6joEIFS59nhrfClsmhWiqEDasCGZ4f9z9uk7bt7Me2iO6ZzMbHn7jzXNxqtRuVvylQ0AY1UdAhjXGHAan46TAAMAtXl3FQxsHLB1By1jCBxk+hE+9MtS0sq8U/46XLdRFbg9tJ6rg1ifkuRLywDdNasXRWtM+fMHHHtnOE1e0KTnBo4sbw44mANiinhGSXtIRlV5/RLYYVYdqbtY6pdzQnVPNhvu7GvifHliAGDMCWEQ70cqKC0QU2aSvuHJvQfbs2//BuYkhE3S1a+88TVEzR+Fy/P7EJKtNgE/hwqCNSYCd9uYRRuj7X/6GEQSCgkwDAY2PIKKMmJPFk8nQWEY2GS5wQEuctPysBw+0F5umGovcH91ghKWa5gtAVkc1K8JBvmkh1KmV+NTHSfMyALXi+F8Vj5W8zP3A+lLWAQ81py6pYe8nxSPI+l8QtD2K3sugj3B49jMbrzrrls/D3PQpkDmxhtv3HXwaPOeUJZrxRmYrjQ0LL3yIvApIINOBNaujWH5h+umA8wAoChAcMOZ18RHPhwpgzsNq5VT5WvCQd7IphQvBGDcZWj2FNgGaqnWLSCxOAyKn/16xkq8tJTD3K1sDTYGkPypmLdm44MWA4rBsnp1qxzYA6hu77ttRU6YQ+NAk0j3PwOv3pv8r8sL9F2333775JddbWq6dOBo892hia7t+4cduBsuawwnwzZKySBoQjqUzSPWJRyAQZNGew7EwjBvwYLgYfIU4PQ8VOXJMiJYS4AaTqfz13UDxQeiLjZNf8NN0DK57c7HmGTZDJj6cJY/QvZE3ClLSp4Gdi4nsop32Ca+MhSLMnh1oGSh+YY/z1MKHVUceLWKkMzWl0FWvUzddHgsa6o9sJbodQz8aZVTndqjC5sigVpFaPkUbhf6dasb+DXh8r/CREKYk66+8cYX0NHmffkLj3oHKUmd+OkSHArT+ID1dB5YJEPRcdpIeZgEmDLeGhkKTHh8kUUyDBV/utZrQ1k21s9rqHJ7bSDjuNKAsJiaElQBhRQDt+1Kl5O6IKdkZqQmmc7zCDyvgXsK2hMQHgdPkw/RFbM3/KIclUVkKgDqp8vaJLaMtSdW0klZhmesvSeFV+w4R5cjKf2jHPCJs0/bcfXUReC5PZkAMD/XAky+R/ngVYHgYYCZpNhMbC1dfWpQMU7+i9bgtZF6Oz/CwA1wkPRuBvIoB/agAnID8fmf8amUvu54GNDMBTJeROp6AHdRnhtYp89CBLlGwz2BfB8FEHAXXuabgQHLQrFwrrDwCE8D5RnlfmqAkj+mR+AAgSC/wd4PDvpFWVlwLiVrNyph1rtBk1xcCxkyOwALKgge0FBpTL6eqvuC8tm3y/fsO/ST4fefwQRCmIOuuv76y2gDPxwud3SJE8JNlRq9m6lKPQow7CIv7JbMqkbnT2kUTwQLwYf1NBqQXJDhgISlnDOnnPVygZlKuXUciCskt797gNTq6aullEjqvg9rvYOknDyeVCq+I2PitSeRjJDUOorDy8NyWuYZVL2anDY9QInJoah6NkW+lGnK49XJqSOAXzYAew2KD8b4xJ3q31jPco0MfFhGCAfWaPGqT975wftghObzZJrZvww57OCZoTthtdQbGQ3Hp2uEqhso5fG0EwEG6gaJA2GGB63ha2AR6TkgOWs0ov6an8mFSv5Q44Pha8jAmHIqS6rI4g2OsNGXy+IhGQyjjpRXPiT5PXf+IBkwzwJKPUmEx/JhhBtiaZW9ZL4MBLYu3Amxwz4fyplQKLz50GyUj9E9ytcg+ZMMsebC8k5yeGbc4+LFMcVF2y0unyiSAzDcTRLeDZbw4Ggs08aPhd8fhRFCmEjX3HDDqzfW6JbQcLOkxRZXatUfzog/kJjE1LwYDiR8oVTyJMNx0qIDGtqgu+LQqBdSrsmPc2VTecGT5mUVsempCiK8fDwcWJ4yDNm10G4h51iInBsSuRKLZrCjeL2RvuZB6Hh+r9MQe5Cxv2f8Oi2xLXM3f7Bei7hHWw9TT7G4ytqp0JRdJw0yUOET98aQFRK3i+wRcNILr/otd9g329hy3d13/+3nYIAmeTJX3nzzcvOZz/8TiACTmlu+uDpe8K0AGVOl/HRIUvJJ6VE9kVxmr/y9u2NgIgGnjLrIQFvw5PsCcjVwkXmn8uCgJyPvyS0DeHVhdQJVJ37f17kyCLC0BFBdX6l1qHt6AZ1kndIWeZTHVCqjdixlv14iMDCuuRR5lOWlaVDfN9zgunRRSH8dcyXMcXyIFMaKbMM8uyCYovpwVp+UYR+HslFYfKl/f6FnqmkHKrcfwuiuE+/HsdlALhZqACLZGLGevcwCNCF6Fywe+Ylw+YOD8mECXXXdq94YxP95kL+tFIxXbfMZaGXEkbTaoFCHZ7TyedG5hwgutbMwMk16AjgqGVJVrrtwixKIgPPqMjppQcUXHm6aNi2Abc+htocKb9G9AppDWmBGz5HRmI+u5uwLFR7juYDvTWTgyTJh1NMgknIbAlOO8px1HHIJ3HxkudDI9uqT6x9RpdYOIgwskQKKWj+pJTNFbJSIA2tJ193vo1lz1cdvv/1+qNDoI9w333zzQqjk97UA07/wGfO8c4xY/arxU+O0YQFqHooBJPgtoNh7/rVF84exXVFOiTCqmeGFGMdeQZBfUYBSZhcG1L8SAeXrGbp7Vs5Z5i8y+tclsNcoALlp8z3ydCDKV16j0MuZcfmZN11Tfp1DuZZ/yMqr68Ff36DLK+vXt3FpvzKFdV8BoeSksmYZrFwif4htmF9sDmYw0GmTXDR9L3kBQHimOo6ppPjNupx+OS+WeJNugNC5kvJSHI9nkIjAgDjaGdEu3MAfaF/3AhUanS59+tMPXBQkfXWUz7InHSALrn5r8WNhhscw8YaWAKP5uSeQ06oON1MXIWt47QWhGLqOA8PX/5Pf6J/vwV5Dkc2naMDSwVC9xW/xQErFpRfEng6KBSnDfj+4Jm2grHjaecfITKztyuhckomc4g33Mnr2OF2J+UQRZTqCqhhMaBceZfCXARd5uhCSrw2bsdqVjEq6tN3NjZDrVK4bpbqglBPL6B/aAyi7uL7X6LVlaTsnQknhm0f1V0ckXUh58mv47584ePDXw+UDXspRkFmbrX/7rIHdSblreQvl2gTh2HXshHJb5qvlzfEsjWukzDhR5jNThpqmXfzeA4BqOLufOWl4GTxwqC0Oc48KnHTiXuiFPHGRpmfA2rP0Je9HkoKBxHoIxDIVTj0RMCqdbdg+vxOvEUQ6YuF6esDfZEcOT/byu7iyHZ0MP01VkjEik0kg7TI1ablwaFIc8cxMvAWadBCO3Xfp0V2jqRaHAZngwQq/FpQGoThYFOyiC2kN3xouf9VLOjhduuKKLztzRvD9YohJv8K6SgHklU+o73GELzZOMVQyiY3R6bB8Q6ZRBwEGQbjJwK61izxTaZLLDlimIdk9R/U2OOSuPsVpSHL11ZSK8/N06h6RTQNSedn0R7xFD0BMccQUQf3NBsL52/JS3XI+ho/E2+5yHdPb80DWS4QBr0NpLz314/mmPpqltuXTI9MOaYpFRoZOI6amXJ+0jgBIjxeYPgFkJcRyyX4L7OlXe5gBhssDgQ9gjE+Rs2+jJUV7JOALSaGd/n7tDXqDnsxsaeO1IflLCvIiiFNJOV+EMWhJHKLyKZBE+cVvqgRvfJ4tssSpE4Ucdi+2gQHs1Eh1uAaRFC5ACYtcP32vFMhey1CTW65RyPTqhqYd0j2JegP47ZZGZt3ukvoRdNKoUfQthyGoMAKrKWLnpi8/xfZKE4SyoYNZnp7qdDKii4UxnlQBunBdqPwGQpS7MVHILKURJ3xBKjMVfqmRJYl3Libv0yLII2Qx3ptCpQz51GnSLhIrq+kDzoZDQmgo6tr//J///BXh6i4dNQgyYcP6LfkoMelWBYUSLJ1bBid8ArpW12CQGRT40zRUxqeNtMQpQIk9gV6cMPq+s/3pEJ8m2WkXVOU64KLuZd36lu3u2TDE6wbggI7iA6ftRpkyFX3AeKttpgvmgACQvVNigJfMNMXzaUwng6leAptsNFlguU5LLHzqlNMTm2Ip9ZaARCUBOFMdZAUB8FDBvScONJpNYZk2FR7eFy3WVxcLfOJyavFUTQWiQ+Ka0QyWN9op010DqSRdffXXbm9mex6B9hECjM8nZaWrIxrOE4Y+n28YqRGTUUlgqRlwSjvktRhvxwEYEGn6htW8LfEdJBDgIr2TBBDpi5p6u1uXS8flNkHbbqD4RBxQUUWsrLNBWbgtBgZQFkVHrEcZTpGqrpX3wz0eqoanxwrSdeEhlVZuK6MIT0ZeeNCkSYDWuHId/sjXRKDzyiHKSLzsaMoPKj2oNEWLZJxoM6i3u44DGAuPfStcrHI4L9BdZ5++43r94GTVk6GFPV8W5OzI3ko0miFCmEaeS4YD98KouvRk41DK1wDD+Xk8H6yr82cBCsNgpK/bf9J6DDhpAeoLwFyGN9UDsPV3283EKRVN8aQE5LYri73EpzcAAkqI/ZtOTOdSp3sqZcmPExR9zQDA88jG1+k2Ze8jTa1yWSJPrhYmI8VYbszTKAJV17h700QhCIVvpuT2kSQbtzRIeWCYWEEUT5KTm5xSO6N4fCBnkduotKcWxwmd7DxeXq1a+kKpE1iIOJyHL9pz4MCLw6X4VtPQdOltwhLFGgyoovhFMuzAGrRmFKj5SfAZg3EAhKf1ph3CWEU4VQCjbDtqOfKaXI9F5Nv9+jy6DhyIvN0mUHXpFdwJB6q0M1XbMuelul2MOYqENuRyRuhhdSqgQNnYs4+KdrQ1wjnxaQIrGwkbj8AkjL/Ibdusie3RA0o5DSzyNuXAjDcN45khywvQNQ1eFWIhqexIPm8HRJD6oRzUS31KIIS6hOMsmc/wiC3eUv8ocSesw9eDAhl3NfiFN920JTTS12VfLfWcp1mTiqtKjn6wBh4EGTg0ehujdgBGgATnHwSPBAZkD9WBBpj+d1aTiWC/cZTi+R9A/raRd5CM7w5190w2DxflSmm4HBjYNRkomwlz5Ls7UKy8usz5QByPY+Xk9dZh5ZAeyYN/YHd+UnukQ4amzUS/Ud7p0v1Z+gdMP3Od1v0vBhC0upYHBJRygMlGFtNfk8lTiZAmhzqgTjgYU2YWia+Zwdv0wTzXk9m5/+gLCRd2AzVgatwRqd9pZc5eBvMgvaKXXzJ86PzqDnYBBiSizgcwPg+g3poekImyTkPlFnVz7r3r/Jt3S5w4VX9xr5iNUjIXnnWjkU1+MiE/exjAvG9Mssu/xRUvh/HSO16SnCKL4gJumqZFc1Vecx9O+WCfLATkKVdDhR/5DhT0ccWbiO0lpksQy0Cs3dj6V0xHjJ/LI8kNfK4g2jTtwLEHOHMWCHK9WqWFOfwCn1LFSChAKMvlT+7fH3ak4ZMpzAUZovUbMC749kJUNWV9jAKbcE9pnVv3l7n/ObxieP39sKHq7ed+B4iGAUJdSxnlfTAzVb6qbFMfOSLW6ouxfjoeUAONbpOB60pf9EQmAvO/fAqGUKZeBYKkqYA99QByuCoHxdIICRJgkBkaA4HySk4QB/34+ku6zq99wAJS6W14/dpNn56f8k1rMukoffs4RTnA11/MsCwE99Ml2TQzVK8ZjeEJ42YMdFyeeJ/qmdsM+DpOAWhOKQ8zApSmBh1t0sOEyF7pzg8bTdfAGMgEqP4a62owdago8LGQ9WxK7YcAhpfDAI6TtvDyrXAFOsB2fbCAh96qBseVTmDDX5s543kLwFD1UXGy7sPnZng7wEAbgYqX3qhUJz4KigC9MilUkJi08hhlTg4OqyoXBxxuYNljybJQGKE0JGJpsFsz0QvDhngcggCBJoexRldgIK7deDIyiAVxb6hnL4uqAgwQLNDkbMoZmtzeCC6YFFC3cS6lTHThkyLGkWDWwA3h7veTOLMmc/XVrz03JLlK5OzfqDvw47Aex41JxpExFi1Ky+jrSjYMwABBPx/GAWOXAJOAogAIWK8EEz+Bu+YBzloO82BsnKyXkYO2jjq8dnJ3BrW0cv0mhYtTvKjWL7hccU+i/P012RPGONBfusym/GTWlEwbYMqXTJlSnWas70T/1drYK79+YNLTucp11meRH2VbAK2f+R8WhuyGkYhXYYAsHZOnxZBJGEMRmJuYUK+btl5z9dVX5zc2WE9m6egLaGN2iXhvb86BTOZOvWSSMR5Qjdf99nnxcN4JPB0OhOl0Ms5uHc90fEVeSW/PyiCytOgpVT/SFE/KzwcEf7x3FEF7M1apzKRFKhn45IZjOWMzcFQqckj5hMwTZlrb8XI+prv8t/2HP2OU8yHueaF7WK8IL3WgeG4mZZJP9gKfHpV8Z1kedVOjhnkGja54boD6tfZc3HBGnqMEXnYIgw9TelT6CFxXhudVFcD6NMDMK5aXlnaFm4NtiAEZ2li8CLE5s7+huhaCH4U8U7KMqPiMcTDkTuE14ypoXw7neSNGkWMNOq2v8F2O2qjT85J4NsikVWnaf2bR0EsZ7ZkXVG2Cqi1kvWXbl3RF/fh0MKmiVrspYGOJVGJwZQq9U2pUQIUtV6bpERZYFMZEAHy6RYK/zEa8F3/nwZYBRQaquA5DTGZ7VoaHZyDJFk1lDQbK+k2fB5UtbcCyPS5QIj2ugK7lcmDNlRWILUGcm6mcNpWe57KFaP47FZU4KQOOOL57jRYvCZcPt2HWk8HmmtxbWUGnU8wka5kxBvee3AgUQmU05qsEHMw7AM3P1lgAhIfRkgEJxZcWcHneNZDwvZf6+2rA48/h6AMNSCUUgMQana+xcIARCgy2X4aoSBwPz4qsNboiuBhFfAk5lHMgJgNmYDmaLTLotQyePi0tNVpu0gdKshIUFk+nnIlhSlkKnn+RgZzYN/HqwvLOHg0PTgWGAsDA2D3RvOd1NlP6b0IRJSdr2+6X4KXh54PttQCZdn/7yb37X9Y+tGR9NjKZQaWwiR15x3IeVPcMLIAZW06nwkrfUq6RDFd/WDkgl+MHQIIb9yiY1OLs1KzqvSAAB0sTz+5Zlc20KbdP7AN3Tq6uhRZ5mpzYKppd04vM6jDoxUeZCVjN52WKYUJGvueIUgw+eRxtwCzxVTwKsXOk8hMI51Qs7TCJPTbdvtzdYrecT3g1cT7TAxeaOmfRCMa7AdDt41QXhscBn8jWrSsq5XVdATJ79+7dERZlLttMVjyfKTzk8aNjADos38sRvvrHjFYDgt4t8mSl3aZZNR8pWxxiY3JB51spH0AlnWoLHgYOKLGfKsAMogJIcBD2jUXnOc8QxWJKuV46zcPPqFDfVr0hobVxabNlDqBBJAnnBUl1Tp4KS9rw9Ukq06PCx/JgMokNnNqkcrvGNPpMSxcd05Fyk3jxhTzO1cnCGJaebId8Pshds1HldIqtKpEqkLhLItpoXpnYBMisrKzsOLy6cRlNz8YnrpTKMKQBFJRH8A1IhPN7PQWpGLcHMDOW0QzsIq1ZAHZkz6r5jacV8QAuuOg2S/y6TTQPeHE6ENxVD0gKzPkLOBRDy/nE5OLhWdAaw10AY9NFDhTjKKUpXod8yTjkdZX0PFIXxuUT2DMyIO8p3QOxcMxnVvKzS5GnP6CHGVwEH/XnVRqGB3yxuEkFjJXnaYEtJvMFawHebEVceyu53UjhHFJ+e2AOY63Pez7HoAQ6j3I6Mdsh8RPkXB/qHcYCJAEyB1fp/JBue9QcmAdgtMrycICK4udSYW4lruQiDVoZ2di0kYK//sG9INf4QYOFv1CcnmWqLTb326BoyjlUJg4U3n0qM1TqzX/FNTphsbewIEikCDREEnJ0p2YxNBzPZZMcjQWXATRpPBSzEtqIHGxQFIlAeTPpoc5JZ1yYpSvq12XSzhpKK81g0Xo+aOQOrstEkBLrSGjbAgAkmKAEmnrVWG/GMguPCco4oolXcRLFtgsadPrLb/iKs0LIEwJkZtBccixeDDeMfK+J6VjhI99AQBpTukweCrD8pFFiNgAJIgkcuBwFEMqQBV+0AgNAUACoFJfkITwWP8PS6bocYO6ttwPOvbiOynfffoD9qwC7dyCctUKwOOvl6XQgZPRzfnmAyhs+yNx7XExwrguxfeb8ftwkhWk1aosBsNnm8DRYKR4E9l4aEtaaMIVPjwq69TtMYnEYWbkArDVjXwHk9wBsfYSYETJ5UGk3Dig5yziAcfyGov8JLHIzdPUf386ORXenbdOIl6kvwNLs4ItAg0yIu8j2khE1171JbwBmPB9uyNrp03/At5VBGyu64GABRx7IEvLQAaZYGJ3WnyIVPqiUI5c11RNR8Ke8+H2hPu3eAC63PQawugFwz1MA21eW4JytCBds24DdWxvYstCASQqlrgkUuNxBImlrg5SMD4gZrEqJFl/EDXmZF/Dqfqi+g9R7a/1qxQx6MElsaRuaMMYpJ2zWyaW4XqNqmzwdBgSdd9MVs6CUON2bAdUBSgVwpeqFV1Sdt11qloKyQrRH3D4VVo9ogEK2dvDYwBeEmw8LkAlFeAmhLwonhg2lLV6tzEOsQTBjLGnLrLJquBgNHKThlTh0pz/1tRiPp09f55PxwOQCkC8zXTP9SrJy+aF4Zaxq4kZsUSP7fnOgjWAl+w6vwYGjM7j/wBIszGZw1pYGLgyAc95KAzuWGlhZYBqMRvwoESt7TRkHj10hO+XDp2sKbJJBedOo8nqHuLAZ2z7xN4yfIojOYsvxZ5Wk61A8hx5UIANNly4IbHitMmDIxshTUwY8eRsdWAWJQ4iy+CyPDOjwaRTEegJwxw3zom8nObeffF2EABaEQY/G7WsseSzQxovaOwEyAWBeBBMwayhTe10qpeNwIH26x4wYEwDGMeAsB2rrKwxgOJ+RVdkCj3mLl0eDnxZUvgCWl58Azm0i6iNHsALAKf++rZaQLXBHapoGmtWj0CwuwuOHF+GJI0td+M4lgvO2bMAFWwPoBC9nGefvfz61yfYJUpvQs5ms+IwXNdgUDmL/8syIGXdvQBRtEe3Lp4QlEQMCzNOnlq0ASlwYDjf9mguISubdJkj8vfdQ+DDn3aREERlm5B3WSwbOBg5AASYQ61Xb6c/LTwSirYh5Xga71LWGAbRBA2jRge/L2isJMgAv8tgRxgmr4UkLgBkG+8UBOUyPuLej9AsAxqdA2VDZL0/XlZQt5FZ3mMAHmHre5JdDXSdZvL7A5PE2QVbnXP/M38to119S/Bk7CDbCtGnf4T5kY30dmo0GFhYXYGFhEfavYfhbhM8eWIQLA9BccdoanLtVjLGSCGyHU3kamCssKFYTh3WlLuunbC8sukPJi+Htkn91Jp5lpEth5BRBong34pEB6JEiAw0L78uDogyoLFA0WwSR3ovNFZVFdwAlY0Z+dECdwyHliImcS0tmTUteWuQiXl8fPQQNs+DF7b96fe+iCSlzGcYCBSgw49AM3OjyPTdGIFCiipFiBUQEH1mjhrIInN8JAxV5DkDlB+LQAY0KwAjwUuHiZK+Ky+3HHjTkZTMgF/5ZXCjeVQsyv/WPDsJbXrWW25GogfW1NVgLnk3+0Hv4+eKhBXjXIytw554lWGsqJ5VVOyYtzVvstT9w+kbLdfn6tp6J9qQ4payUz2lfLdueV7L9bF/qRUYPkcB/6JTrk5LdUtkooIr+1NutxCMI+2DypWcpboAfHSkkN2AmwIBKL0NDu3Qgs5CCL7vs1WctLNHPFB4cFITsAlEGqlvRgLV7vzP8LeKWxFYy4+HPFemO0tMj80lTUE8cg3xSdybyBQZQ6bqfv7sH9IwCpSeIC3/OQ9VVKz6iiuP8jO+TT2EACoAdWwj+zpevwre+dhVufPkG3PfoAjzyVFwpotbLWe/KMZv1Ye0aw2NHFuBz+xc7j+i0MJ1a6PLjBp0deGuw5g9l+SrlN7pQ42H1TMxFptSJLAGLUfZPm2OWJfITmaj8sUSlAYozJPnAyp5lINbtJN+jMhJ+jaJ8pOIRNESIKtTzA96eWPjIVKFKVT7EtfPOufS3Mshc8MLdFwfBP1KSkSuE94NoLN1wOR8eNzAdQNmZ8hpN+AyLoouRh6dBrMRxGWBeNckP6FmAIAE6PDyDCo/neSQ+QMHLFZ0ruwEz3i4qrfeBsXv2IKwGkNkWtq+/8TVrcNo2ggvPauCtr16Dc3Y1cP8TC7D3YN8R7XoNhb8WaJKhrAdNfjB4NnvCgvFy0JRdi43IB6C0Ae9L/w8tX6onq7/RD5R8AFa3SrqeicsBzpMiUiyyiYWIcwrCw/gtoknKpy8y3/YiTllQyeM8blkQvNkheHmjF85+qZQRK/KE3aKUU8vboaOzleb38nSJNmZnluRqIgmV24lo1xfMBxiuBLJDqESqQiDjkaOL5OHKLH75Oor6HdqqHrzGaEgIBtjEdKwLr6whgWwLVPUSYSjLIeqNPcgsxIj1DQxTo8KzEjyT/+6mVfjfv/8Q3HTVepha9eEt0Kytrgaw2QBODx1egPc9tgK371mGQxuzXBhkBa2VK/c3qjqAc4+lnUDXa+AvlyVOq4C/FwecfmL5DPM4ba55wau/swmR8szlZPVCcPteNICaFvIG4vqnSduFaEwn3GCqxzeFOlcLV+DoxrkFZGYbZ0ompiATSStHSivej4Y+L5dR/sjt1PKHRpZsVLVmAsQ6GiqK4Pzy8hhF4wpFIwpJg+AFqMtZGf3Bb2veV+3lUuzd1fXg0WzolgZ4+YUb8H/8wCH46ZuPdMDT5RymT6sBaDY2JNC00657nl6CP39oSwCdRdsXop1VJOdB1a+iLrHO6PdBqie4usB5EQDk2gnAQJ+w8rgvHufxAAaMxo4+8PUamX5YH9z6pzZQdcsBYNsVjAwEb2+6iyerW97iDI7c96vUtJVmeGYGmdkGnK0XZccWfrBybfmis6yYqo3VxaGtNU+DMNJBJDuXKQNfg7EylELltOROkdpnTmZq7UaUBykrk1hzUeUHrvQIwhjTVAscpXXbIf4tRw/l6Fr/59HSYvBqvvwo/OFPH4RXXFKAZX1tFdbCn6YDYSfqHWFh+JbHV8JUDP2+M39l3Slvu6Bsa95vfDDIRqXriSCN3LR5OUaPaD1Uvc42Q7t4K6fRtkylv9SmQQpPAxqCA0pSPwEHdFnlCazNvb7nDLp/Sjo0A9YQTeVRfIvYwGlld2mG53a/dvPHCPJI7hqSqkDZHKtVWipRfdcA+C9ItzjLR7tan9JJPmddBRwF08qFnKfiGus4VY+8liEUD3xDSmUCWX69PiLzmLI3UOgluzfgN/+ng/DV16xDXP8N29wbLtC027f37luEdzy8Era+Z9ZAAAzgZ70A3s4IZYdIt5Xc2eLgPPPyUmXgO1GpcYweAViwQKos1MNAP6M9c6X7bbCvBnRNpJFtpYEThNcll4FFW3A5UFuKKOUEFSbiFOmjNWEVr4BM2Ks/E/JpHzeBzQHlrb2T0yRkcYhWFLI0OQ4tT2pEEY6VX6gYALJyOaMUwHCnz9jDgVgpXy1fXnHk6wjJc8ltoX6FcvP6sxETyQDMTOdboV1hYfhfft9B+J6bjgqgab0actzrR8MO1F+E6VO77c09C67Qpp+xtGvWD9MfYPq9J3L7lvNpozTeoupj0OEqHzsVIjcMoLbOR7LfeN4IVT0F1h5gZMo44Pys/ICq/VD8FMEMbMjIkmWdi7o0zdkZZJqGzu0lTzskgwMeD0Y5eW6MKDqep5NppWfCFa00kFTOXB4AH5CQKwIYRK+f8IVqHsP5pF90R0FeHz7acFlDyqc9BEC9IFimMOvxJNnSYpg6DX0rlFHL+5PfdgR+7BuPwHJ/ILhbn1l3PJqWDoT1nveE6dPnw3a31hwB1mgNRJZbtwMVMEU5QgvZum2EXLX7qPNAZ6qVwiv9rvlS2vLoCPn95uWf6qnKYL6CgaqNMOUFVk9Qtg04dZZxVgd5mmOl0Fu7ZkziWZoBvXusRJoghAJYZGJwMK0vm2ftPwCZvAJfGfz1FKgas1mwAwBUwGS3lmM8VRat44VWilwP1PWSacDhAwRAMxUJ6zBxiWVpgcIfTKbWwL7/a4/CP/2uw3lBuNt5qgBNuzbznrD7dOdTy7l8ug6aPKXX/HXjsUAjfhFMW3Cggkp787QlfwsCZXeSpAfWxaPVPV52dPpcTe0Q7DVWwkFNi3jbQS3e7RSUV1hhxyEZijpTnO1cZIlP92Sla370G7GeZ/ebHioD22n8gnes3gkyhgkVY6z9glXSJKMHBjnK5SepkW05i/sie+aVMymdU3ZdZuD56fqINuHtVDxDTB2Cup/KIvnR4GGsx07buZVg68p8azQtffNrelD5+d/ZCqtrcY0GVmFpadnwtus0dz651GV/7Rmr4oHDmj7y72PnMBrR35aZijebEmcd1ZnGQGT55UcgYnwnEiA/TJm+Zd0/88Se0I5H9tM7fvNXC7A8F5XeosefSWrXh1oZ6SVW6eVXqdCiP3P5KT6mUDoaVf2IPwhK8hmo8m5hlLbLmiVfI+YHJUs7cg7W/KqdWZb5Pkd3N82OGYs/QzOCUyCf1NyJdTwPztE8vAYK3h/J+14eVUGl/62sjSg3sVOUzEPgf5eJKl6HM+0SZeC80RXnD0IiGICxdeq1RgOuaFOW7khTpkvbA8C06y2boRZofuxtR7ppVEst0LTPPnnU5tA+jvDR4NE0YOsAlWujDypQ9zfovom5e21d1y85ffb6LPcXL4iW405tqDr4wUC5bHkI9Gs+vH7X7QcwzOMTgph5RB3lsd61Jq1lAex2svajXTXGmqRSEVbAifvepvLIJUp+rjycHWMa7xMjAKlDcLCjxfMl4peqisHLBR4ggVQuMPUcABhzHXcCVFkEL6qyBTqwCtmTOWMndUCzWfq2163Cd39FWQxebx+wVAf2ErWj9N17F+Gup5bsGk3lOt3reAE4ov5yoRuQ3LTudW5LzP3nggcUwOB95HquMNyXNcCRdayt5RRQ5RXs80MbxvNHu0zByyXCVQYIJnAStSlErg1s79Tm+uuv3xbMbZEz6oRegXQV+Bab8M0SByp5pnPruweg4nO66jWJ8rRhBVDIdAqKdEohtEKhVcTCJ+NLNcnIcZUSZZrSblYJVTOKurQvrdqInswLzm6EPs5L7XTrx956FL7yquTBUPdwZfuQpUftwb+P7FmGz+1fEO2kGqRal1qYd51/ddsCWN3gNpnXaNDlRdB6SaZcgODqYHVQg5EzTljqwhPxMzdD5eL1LuW0RwSA5SFeEyLSIACQr2eo2kGRSIO4pQOZI7PZLoqvfZhHFw0va6VoF7YBGGt/T9VMkTdw1ZAr7mrMDNlfahx+8Ko8ZavACKA69Uk83gEud4qEYB6s9EYzo0Tt3N6btmE9TaInD5e7l+72vY55aDksAP/i3z0EV72wl9WuB7RAU6PWo3nvY1vggUMzptDkGmAfB66uGOPh7Trw5/VhPmfDy+A8SCvyxtLXKf8Z6ufeyHm4NeksmVPCM/TLpflrO19Zt6HXkdxGqk3BaWddNw5CyWjLzAQzvyC5HFYz3xS50oHM0trCFmBTz00R8gs1n4rXqHjLXNM3vsyK4CpkH85OLuoOAEdpQM5vTf5O+toLw8EFOC9Pe2+Uh/N1N2kU8Y2At4VoF2zXYhD2HO3DtgRwuOLigXfDzEHtus7Pf8dhOG172XGqrc+0tBGBpjuwB87KHjNc3QgIlT6H0kegwoTBgdITjx+KTuidJzB9DYAVb9L0P4J4UBeUB55lVfTNezWJLXORA9V1R55fhdBpL2YjtTROV7r3QUV6kNlYWNsShqbFqtBKPn5BaagsEO0HXCASfHZhlitN+SGRl25kMzqZRvXnwoB+ObiyiHLxTkWt3MOjZcoHtGym+Jp02/LrpwLA7I0gc1ZYaXv5BccHZFp6RfBkfuJbjuSHKtvXRLRPb9foUNjleucjK/HdNNXulnGsI2r1NP0gGAhQ6QUAyEEApY70RK4OmLTgLxqnDI1+oaNnCKaMXt9zWdxmqvUH2RRaxyTQafkyzt7X1/VqMWGAXu5AZmFjtgX6XTe3kDqwptwpZKzAvYykdM6iaV86kVh2DjhTi1wpV95Md3SWgwAVufIlSVp5/PbRIAJOGTOfUhI5PYSqQen2R3bR/jx8KEyB4wzpFZesw7Ytxw9kWvrGG1fhLa/ut7e7adOAN9PSY0dmcOsTy0CqzOjwekYLUKkzOAbN5uh6wEsXWm/4b5rjm3iA4inhwO4WQVVPQcsDcPRX5gVenKpHH1dfd4EcJnXdJZ6YLCKIdOQksyn6j2RsIG4NOS9oRpLcRhCq8LzgCxVeLUfDquIxHSkMrZ+/1jotiefo7bm1aT7tdjygUYLCy9aIlFyRt3KV0VaVxbO2ixGj4BJvknK329af21c433Rdfd1ks9R6Mf/g64/CxeekadNG59EM0b37luD+g96JQGdBVeuQ6j8RzPqA6wfkOLJtiEpPQOkFlyvCCaoPSjJdM+uEPB60nshBxfyZfNIaCqujbBHXfoDlzycRXDdTKLIGl3HzEXZZ0Za4DrO2FAqwYDjYNaopNToChwPABwAVJ3lqBmpdzyITypwYUpORuxCo02g5oDpYyEC/zH0yGuZFL41WCBBtI/gYMy9rS48c6v9aOjNsXX/NCQCZli4+p4G//zVHYMtyr7Ht2gwNvNq+XZ/528eXw/SJL/1Vdi9UvDAEBDM2eX/6+S/poao4UH2DFf1Q6b3+dHeBtH7qdOjJJbfsXnpwyugC8sB9HxZ3iFHyoL7naZiiejKDUvQnHxAXw5IeyoVfvukzwS3y4nE0EQKoeWKtwFpheHhpVOtFcTdYyzDna5ic2jt8+x9nYQ6lkun8dNlLmQj4w46m/Poa/bh0f+9ezC+5/vrr1+Z6nGBeat+w98Yr2W7T+jCgHQwLwLfvWeoApzZC9m3on9Pg+ohQMRQVUdpUHVtw+7X0C0BNN1jY0D36QCLAEsCdpnW/CAZccjlR1401DNj2sPUg00Yo0pc1LcG0CQrTvn5NZjajmfhWgha+yQz6TGQnVflANyi5HakbWiuIdl/FWRPeiSAVAnI4ibIDjChJvi2H5nilTB5QqY+XJ6g0lbgUtvcodiDT0rYVgO94g/+s0fGi9rWeP/TmI7DAnthumuH1n0/tW4CHDy/kc+f8HceaavUEpy35tdWbflsWNV9FN8d0FbCmbzyOn9OSQOB5svozOancokzg8ehrqrZnyj+lwCGWVNYKi6e7+jqK6tdkwpR6G7KXimsuqHvBTsXRuGpFFjvzAnaBE5QBi3xQdpjoYADwF0vtu4Ez+KQPsbG4GV9ngboi6VHQG1lcFxeVAiEOyhHNkuKcvkDou+iDjxUv5q1hYfbS84/9fMwYXf6Cje6lV4nGvJmNMJb97WMrsEr8xdrDSq8NcugeVUJu3HwQQMXj9hmyvmFhvfvPPB3GZ0+QY06vz8cg4+/lOOuDWBazdR2FXgjlU+XSvODsWqpy9UHIo1V7MhrAB0gLv4hN+CUxXULYLElPQCiEcj90I5XGJTc9f6gRRHgR6ypLjrOLbFC5zmCTwA3JTY+xzq57q8on8sjlgWrn5Q5HWQ8AYOXo2+qxQwhf2NfHtV8neOur1uIQcuLpu758FS48qy9Hu51de+Qg0b41hHv2xgPmZI++GwPIcXLePjTlyrIQ7BRVvIsnkbNYy9sYrZ6AerudfuhVyKuE83JwfXZlCHnO0Q0c0D9WjlpbgU4z5mGATWy545pM+0J70GsyWobX6VhE54og+AbDG9VZC5HFRNNI3KCmdV55tKHa4SLOAQ/qS2KUFkrHAXPFZTg4Cl4J43UdCJP3hbP1Xj7yBHRfJmjptZevwzUvOvFeTKKLwiIw38XS7wf26BNht+nwRmyM5MHzihI4ioQCFLoQLPpZbTPS7SqZexnoJu71AkWU9GSdzQlu1J6HrRa0tU5YGaqOjs7LYqMd4DmhPbSoBEj2SjQO8LL75bnGumGhNGos3X1VE1KDoWlIIc81ULkWwuXIhi7mKdKj6izkykRV4Cxi/dFYd7LXVqjSQDVNnb6wH+H+/T1n+yG373/T0e7dvc8UtWsy3/HGo13eLU1Zm9m3inDXnsW0NGOoa3e3CslAMd0CF+HqIDPYLNvh0f1m+ksDCRSg4TLkwjRW9SpPucgHDFEGtLqiB2ueR97pwyE9BDEomngE2zUsQB9xqSlrnF4ubIVaIQDqhegycoccwcc7q0ZYS4sggCDFeUaJjiKltPwdMZx30DVl+aJKAx4/WmUBJgewlAvA1ovXpQvvtcWtc6JD62Et5lHMXszbblyDqy555ryYRJcEb+bvfXVZm9lYH986/8S+ZXj8yExOmVRj8i3VwlAeR+GNMtSe3q/rZUKtX+06ht5yNudjEIyHLGuC1XIwJpGW20NPzk5nWza0J6zFPeqygMsfJ8ElkCywadLh/e4S0dyzd744ZE5WOqXFyMuj3Q4FALkVXTey3LEGKKiiKDafsgvgdab1zuRIQ27H6GsuC1U7jaVNrm2NPvjoDJ440l9fdHYD/+DNR+DZom973Rqczp5rGvNm2jf33fv0YtRmKmAj1mnQeY8QsljBag6acR6zNgNa16TAGtBk2ejkhTZvoX+o5KGU5635mYFPxaliQ1pHNPVAX29NG5o4rLW4pIoPMQ4uOCEM68aiS4GVNCWhPPXqgVhBc7SdizwtyKkOqo5BKTNfs9z0aAMgAcCUiZcFdB113Wye1bwUteEPHAgLqE/19+3q2o++7Uj3lchni87Y0XRncxI1E9ZmPntgEZ5a7b9a2T3iEd8sJ8g0AokIMVD4DS/6pr+PiIT8iwlOv1Us0PCq/uQ8oAcyBAtMhl/pLiTwsM1RD4cBkjtWwyQBS4flvCvC4sIvbhXMA9fTCiUb34vUBtkHk9MJ5E5TEr/MQnlULNwYcrziZbS6XZRPy9TK6Cpo3skgV1fBCzMA44NGu6bxzgcxD/rtmZg3X39iTvfOQ99902o5NxN2mYZOAbd0NCz+fnpf+8Zy31C6cDMjRxmvQgd1mGS7CnBSpPsU1XuCeQZYSctlI1o9qA+goMBKThEFL/F4B6xYGWQBCLx2t2VEFV46xIgDq7FxCxvtGRnWSghp7QWEYA0inu2IRa3ER05WbmKvo8qvBh7xsXvDo3YBYgf77q2chtkOh9K7UCt3GW299jLVTQM4WUmgytd+zfHPH8AANH1Y+yXIH35zeXPds0kv3r0Bb7iyf46pBZgp3sw9Ycq01sgWQe/GbTupXWNtjQj1PoAxLzB6WwBOzlx3SoApnQrjO5O8jN40zj8HDdaLBzBtBgA2H7XqbuKB761GIrv7KwTEcnAyauk1sxVb8xicfLMxRtdUlSnfk53vYhSg28t0LJYOznnmBvfOPzjykOWLEtx040MCKLCdW65RlqlWdpauyK63a7vK8YFHEB6NzyftDD7oz37nETh71/F90vpY6Ntfv5rrM/bgZEutN/OJp/vvr6SXWmfiGsu2utFDaXWtdY0T1xHdH1pXynQmeaX+4n0xdutBJF0wOuO8NMv8cV1GdcAUPd3kf7K8vJ4QbbNcSxmlTYvHYzOUchM7Z5l0AM9miPma1FvN9WKZlCtdOpEH2jxrRqrT8EYyUyrUjcrv0Q/XGQki93MnPO8iDAfrOJV4svc8hHD3nj6kfRr6F77nENzwknFDfibpqkvW4WXxHTbdW/+bcQD81L7FbiFY94dYEG4DuL6D0Lz4q9YKWONh5Vdf63RcrNBl71Af00Otn1oPy6VdEuBl0Paksir5xWJJjtIunvoNq2RqcFAYAGNgIagDGcJmMYnAgQyTYYKaCmDNzSR76E40cqXWNUP3wj35ueOgAi6VtH3elTWgFAfgltvKdua75NeFL6aZzmTCb3sc4eN7yjpMu5P0tdc+++swms45jeAbXjXf4bwnj87gi4daNYxaWF3LoWH9ARQ6UOcrMkRfCGMk12OQupy8dKt/Zru3AhpcXwF4ft7Ui8A7H5PZRDm5F4NCtkw70NZccIWGmrel3pNpYKsRS+DknQJRGFE1M28YUfyp4QSbQmUzlehmXrqhvdVubzGMp7UgaMtmpLp1EAqEViavF1YlVrorVOOuJxE+9Gh5Nqn9VMl//5Wr5UuHJxl9zXWrsMK+QDlGbbU+d2Ah9khcoCIqfZ88Gmc4t8YiNSP3z7A6sn5MU2x0GLQsZwcS+9CsE0IfnOkz+nrSB1DWeRA1qusu6Hss+UJfPZdf6Dxvqy47ErmbPJhsTTP2b0noW5jqUO7Z2MbhozOAb8C8Fto4O1nOQ2i5U8QU0TkEBd7by8Cs9Mu5cWUXCouCeNNBSHEZeNUcmNdLtQNHdZQxydy6NZj3PlQA5jvfuApv/++OwLYttRHo2acLz2zgiosSuNDo80wtPXhoAfauZlTJjd9PPTADjyEsfV7IrkN0v+j0L3hh/lqa+EOwBgk+gEhdkp5P4uZrOSyUrQlxfccio6LTRRZCZlaFtO1m65sDeJtWVM/zK6prMuhJELuJbEuNxQNo47GNzgOH5pkpHlUhvE4yCqOeKQHeUazpdVrT+QYtHMRA5YlRJakuo5cfi2/XKNpt6tufkADz0zcfgZVn8LGBzVD77e03vZKfmRlflzkSFoDvO9BOmfrWaHecPrW3fWxi1p1sbgmHFrZQGm35lwb4SreKPsei2946iYUIZfAJCFS6YrwkymL4oQAKDyvyyNUZL6DIsn9QKaMWWOpmB2LBapsaRj/DLg2XT5MQ+oVf+XFyntAznrpsx251JZ20ad6sQaveAWTd03il58A6b3PiE/QF2Xr0WfoNUWmcNvhAMKq/DtvUXzxQ1Oybv2ztOQEwidoHNbcHb+vgEYyezNJomoeCN/OKM9ZhKSjAp/civOPB/rMwZ25bgLO3IlywdQPO39rAmSuNnT4VtVRUzIkAzABIzg2S9oVKtAYuwRcdMMrq0KfgKkCRAY3wtBQhq4LetRrIkpPX5kRJCT01MeEF3KrNB7rd9LS0Ti3noleI4aSpGDSBNwm0Q3sdBCzoGEBJ4Qi5gZDN33m6gsAAWJnGFCSol8kWMMru9Ly8YDqV00unQdXLrf33iwcR3hWM66n4KFC7i/T9bzoCP/j1q88ZgGnp0vObbhG4BZlul4l9I71GDx+ZwYE1hPYr7Z96uv9+U/t96ccPbsBTq0vw2f0rsGWB4LRlgt0BcF64fQPO2bIRP/3by9CGwu8lAKhw0kBQ4gChuhbdG3YcppjsVjnSUkYHWixOyEzxAHlfJYMGz1cVmMsshcEiS5TbH+lqoDLMNwJiiWK8/Wokr+xQpqiyRagAjigaMF3I8Z7ha15UcaIsQELB8i9aueDJhQhWaA/n5TISOHNdr53kXB6o3pZe8EfDAu8tj5QHHltP4Ce/9Qh822tXT4rDdvPQ4ozgdcGbue/R5e6egjeDC8POc/vNqC8emsH5wVNpH5tI1ALU2uoqLC4uwpHgER05jPDo4Vn37e0WdM7Z0sCLd6zDi3duwCL7bhFNsKCsycpwxJDhTAMg59Gvm3R2QzJfLkOOU8VrSXyaF/N1PB/D1yE7O+29EBLpGeCJvKz9IwO5gnYg2yDeu3ii2reUV/LPeKacGZx7Ea57T2VWKh1X39ERCJXFORViFpO4sXNQStfOqxfyCII2P68shUdtW+NQecECJtrwdMNL2TZnu3v0vocLwFweFk5/7YcOdYfbnmsAk+iGl5QF36aZdmCw3cr+woGyDrWDLXC3n1/RH5Rr13IeOLgA7350Bf74gS3weNgO1y+TrfVRjVAxegNM4ZUDKRg+B7mcUhT9hUmUP+cDU+tHFR5yLzP2DMip2Q2n+KoH2uIZgRFNksFLg256Hwo911nKpLohe2BB0sOQoELihycWAKXc2UFSSuh6MROSt48JfCAAzIfZ6zNfe9k6/MoPHoJXv+zkOmg3L7XffUrUtJWb4Fq06zKffKq03P8S1qH4c1ntKz5rn8htAab9mFwro6Wq8TloIfUlkae44scIqg2cHvBYgLCzA7PrCsVrccvDwMctuAnFaqxuM8s5ZiT5MB5Oeqc91qxnIB8cDFdTKSYfnQRDq+85PSrPJf+pl2GhLQeWAFEOd5rEeGSZ479ae1jePH0LMO9+cAYfebyvSbu2cPPr1uB//4FD3Tbwc50uPKuBs3eWNhqHGIDV9SZ/ZvfS8xr4qmvX4O3fdRi+k70YvX1cofZRub2rM/ibh1e66VSN+GDE7+U1fx2EXIP09KcGSN6giFxJAaC2tV7SqAEsCkUVJgADtc7WdqRI7sKafPSlv0FSI3e6NK4JCJO0pWMlLzXo9RyROQcLwU++K4k2O/RbUyoT62h0eDyg0/EI8i05ONAwesesBZj2/Msn9/b37QLv//h1R+HnvvMQ7Nw6tYFPbmpB8/KLymdTaIIn0x7eS2xf+8rV7vUV7Xe4f+Y7DsOPvOVofsq7fTFWDWjaKdSfP7QFPn9gwRkQppEEB/sMnQYIrafWwNU0ng2SkiT4pNzd9UrOFxePkImxdaGB9VNdZ1BNJnJ24n2aCeHqBqvJ7JqHa/uuUZZIBM+g+YYamIbl1+7j7WhlmqZBrhAoOsVTIJdET8qRzKu3kAn9g44feqx9H0wf2K65/ODXHQlGFJY1Rw8WPLfoqheWdZmx55i6J7fjwb32w3Gvvayk7b5c+eYj8MPfwL7FHYCmW6NxwKt98PIdj2zpnvLeiCu7YpDpMlT36rrWh/a2TF304TbMlotGR1M8qmtk5RP2ICTLtRSzuaEKj0qCVW2C2gp3LkPNHirUss//Rjy1EDo02vNRa3QxSzd8pT4ijHwDNjJlbylAc8rIgZqv0VRp2IMBVoQk87YAMB99opfaGszf/Yqj8ENvLqP084lesrsAC9EYyDRZb668uIErLpYnhVvPqPX2fuwbj+TF8PUBj6YFl/Y73Pfuc5C74MIgjY4zIoRpF5Z8hgBsqBxlMVi+oM3kWLHHMd3FkXSsChUBlXCWYKYTVKcj3EqwDgCjBonSCwHwOwBEQ1JVliVyo7wRqVYG3ul6cVqPJH0H2zy9/NLNp5/G7mHHdh20NZofeNNR+PFvOfK8BJiWLjqXg8wwb9o5atvljVeui52lRG07/Q9fddSs0dR2r46GbfFbHl+GT+1XQIPupbIB3yj8wdXfZUpxnm2hYsZYANQywFt2QPD0HR2PY0iWjNMazlUXQXjt/An5AZr0PhmvAOOifWM3cmtowG9RPdsU+10bskZ6dGSke6xkmTodsyBfcfq/GFJxuT167DDCe8M2dTpl//U3rHUg83wFmJYuPotNlwYUc4N95eCFYcG3fYSiRq0X81Pfdhi++TVll6k9R1ObjrUflXtf2OL+RJg6CQOuGKO+Tvdad8qgab2KwiLN1OZDagwfWNcTv/JRBK+slvo0NWfCnalgSVtu0a8syz/RzCmDYKoZDcKIQSGaFeuUDhQIeLJr96q+7vYe5ysuq1wvSVza9ZxUKK4RWuZAoxwI9vDOLyIcjp59u03983/ncP5o/fOVTttObJ2pvsPUsBdc3fz6dsF3eGrVPh/1s995GK5/yUacOvXf464tLrdTp1seX+kWg6fsbRSiaX3M9EIDknn1RwInrn86TxgGvewh6R3WmJ6Xoy7EFToST/m6tgzC29eAzOjaiZZQjfTcO/+a3wtvoYq27a9n5FQtU0VUyWsg3VB896+/VibuW573PIj5ywJn7yL4uQAwu54nu0hjtHUESNfXVrMXc/E5DXzH66d9x7v9HvfbQztefHaftpVRWwju8gnBH3piBR47UlR/SDfKhKFCVLkWgqiYPFperuvaDnK8c4/gMEOltKh9qXr6MSL279jyREuTpkt9O03dG8d6iGhIhw/r0lB1jvE6nFqKclc6YqhOQ4/A5ysEuSVIHOcL3Ru2qe+Lx+Tbhd7/9bsPwwvPfe6fg5lKywM7Zu0UZyPOH9u2+alvPdKBx1R66QUb8DPBo8k7TsEj2hjYxWo/k/ueMHU6mmZxpStrJcxX3LgTOKBzzamPU+sstcx4Obyv2ynF5fJGzCGLrNezHlOIlHfGPRvfa5qp9N5l737ihKKhL8srKE+ClTiPlyfwEF4ri37xs/ytL4CJl3KpDq0RVpT1yaNh4fHRWTe4ttOGdgv2jVeefG+0ezao1a317kNw1E15vu11q/lF5PPQ6y9fh+/7WvlxuaEzOe2Bvfc+tgJrNMWwupKKO6zeWN6eRU2XQNsNGZn5c0BsBPOAxLU/YPYiAknlUUlcCfKpkjZmZXeXyCbDgQmprGjfkAgEgw8zRl6DW85ZBje/cYBnqSod2904jTO2Wi7qJXm9lO06wB1hq/pgxJQrLlrvTvQ+V59FOp7UgkALBmma9KKw2Ntu5W/2E7styFx+USNkD9H9BxfhU0+7LyIQ19lznWx0Vg5VIoSRY23A5esz6jAdMlbPha4UjCfrg8jFIznwRuu0Rg1usauezGhDyhVtEg1WOdimskjctpyUEyJUgAFg2rqRR0wg1kozsKNkRgoUNXZR5r79CJ95ur/eugLw4998cn1Z4Jmiw6u207ppTXw1Z/uqzna3qH09xGap3e5uF9LPjI8xdLtVA6/+bI8Q3LlnsVufcftX8fcD8AAA1gY/rAx6yiMXA7xwOAqj/USJzEymHX94kdsZOOUm0LpPzLalrcjE5XrCeEpGAlWhgoU4HSYr5HcWjgaUCANCKusqGNEA6NMw0g52mgL5I0G/24ce16Pd/P2vPgqvfMkz/53qk4GWF8sieeu5tFMk/u7fn775cPdaiGOla1+0Dt/zFavioN6Qd3poYwZ/206bGvRUnV1yVwH8gVAoh117wAFdBpXeHAytpEXPXap4Gman1fCQ0WHUsm0JXIDOaWgSyNR8IZ8yAFEtvp6ybsLedp6dI9cQGR3w4YgvgE95MiIdaP5SNgDbOZ/ci/Ak201qT6qerC/+PtH0+isSgFC3k8R3gP7uV652B+uOV9t8z01H4ZJz2LRp5P3C7ZcS7n6qsjKN2sst5G0s6QFPJzPAxFMPOQU0MsAxZlPeJL46soJjC8dIrC5zrAzYhStB0WpNI6tf11CzT2nle1+bTGs3gtcONABAA4MTuW6TrwQsD3Pjw1u7c3FHfGygHVX/SRipl55Db7U73vQ/veUIXHS2nAothynS171yDX7kG47A8aQdWwm+701Hs40NbWknuvOpZTi44ZgD+Td88OJhwgAmWKzQ4ophmekKT5vWMXVZsNiAOMRaywiNeD9e0DR97jb9ztt9wdcFGa9JBeEyy5Oi6eVT6uQsxj+i6nYeP6ErniaNYTP1i94vMizSMrtrsjKwR1H+i06+6bovE/nl12Hdv/Z9walu7QfYPrevv3nFJRvw49/y/D7VO0btgbxveNU67Nrab1O/9IIG/scABK13t/0EfHWh/XTv+z+xBI881Tc6hg6eDay2tyXYvzaDS3f2HtcYPvTLM1iPixf2rdhFOl/W7YZDwjx+kpCFeYqf7nN8NIr0kcWSd/neJS+XgihRVpgIjAJIRV09ngkvEu9bJzUPdiMC6bJknnQzRzmFkHFGzP/QeNoJ8kbLgCoaawylldtXOHwiPl3dGtQPft3RL2kvJtFZOxv4wa8/vl5LjVpA/3tfcxT+0f+1DdrNq3YBeGHk1Z/tJ1keObIA528p0ytEqBy2LG/29ShZDPd3GxVXqMxV+Pt5hV9vE8n0Jt4vm2bL97nA9Tq5+bLyUWX+6EJ7vdnUlTbASjIcECek8ukO1tNYAR4SzbcoRLVMaSAA/Z7/1NMIe+OB1WteuPElu9j7bNMbwzrQ9S/u2747CTzykbn2NPBHnlzqwECO8InUO+Qq+lIMV8aX4chb86sZtrdeQ2CTYLVIlpAPjeyCxpLxH9BJTXFiQ8wmyGTXJGNokDnz2HUR6cL1YVRtZ3Tv5YKrxZqJwgDkuYMK+sNgaYoirG4g3PUE5k/FfPdXHoUztn/pbVmfDNQ+E/bWV/NvP62PvjTr0eDJtK/uHJkIFUL/V+uoZrfjIp8MKX4EhWtYhSRpouTG9Rpb8kp5YMlgWHbij2mQ6rbbkjmMx0FBej8krgdkGhqaGmnj9rDKjip+pSaViY6BATkPQf/IAon4x49A9mLOPZ3gDVc8t9/R+1ynr7l2rVufaak79DcCMu3ZmbvDIvA6VYbtjsi9rLFZoMEKXiHYkRO0IYKXGHVmxG+8gkm3QV6MGknPScxjG5jJdCAzU3kLUHagmI3dvlS3RIqnAn7khOTysGEAFY/nVOnfuUg5bSKMaQCx8rSN/smnih5/442r7vtQTtEzR2fsaN8RXIB+yne5Hwtb2u22dkdu903VqGFLkawo8cNTaH0NFRtlYTXnHqslRJhUPw2gtUE/TZeaITnkBQ4Vw10lc0vAwZa7b9MEjHHZcpQOoXFJI53U38uAo6EhHzpYwt7yqlPPJ50M9LrL1vIOVvdqzxFvpj08ee/T/dcuNzVEZAv2U7u67g26njfiDX4eMFAZBHGgDFAT55EDdjTC1pK7JkMV5snEgYjqPDLes+rCMFwWVWMyMdO0hZirSCWITxTLL6l7hEcCwOyPuPLKF693TwefomefrguLv1ewZ5oaGl8j+9yBhe5Dc0bvKkqtASOF5u1pxlib0VBNKI0VgQxo8DNnLhDog4XoTZ3moLHpkhM+iXAklGBAFiqPEAdKCY5XNQKh8nXkPJ0FraITvs+n1436wDR6FE347L7C+dXXnlqLOVmoXYB/7eVsAXjCR+baB1s/1b4XWKuEu5aiBuasEvIzOSU9C/UGxIG8aqQ/FzSGGGkB3DoUBINLORNI4d88J36tS1ZzBgfRWbGNl5uBAtbmgOTM6qz/0afr6+FOeWliK0YvRkt68GD/256Nec1z/KNszzf62uvYR+Y2mkmfZvn0/sWKStSHYXLYLE4NIcugRDY4kxooiweuJ0Lukg0WoGNDZ8xgM66MpXTkZs4zqBXDdQN68nfECoriaG7op/R6M7WzEopWgO/JVBKREZLCi7rsXUU4FAfLS85t4KJzTm1bn0x06Xkb+Qlv/kWEIdoTFn8PrHsmUtKKZQpUXkTF204DJnkyzbqHGor18gKAWSTW3pNbUy1yE7hih2sVH4s+GWS0B4FjDNX4WlCc3kwCeTSRyBJgAXXxW4hg9LQf63M0QvRUCeEL+wpL+wKlU7tKJxe13f2V1/Ap0/h6WduDXzi4MIkvXXhjn8tcW5MUSwJJoX3jcXGS+BBeI3SXMQeXDfysoA4IhSaDTBaoDFgxQAWf3dYnhxErAK3vB02YI06NgZxyOutCRBWQImAyCL54qOTXPnE8sZ9O0TNIN7y4AMuUdZmW7juwOKhrgzrpuQhs3q895Oqkn3R6cDLD0fIJuWxtclOqSiP3jMQ5GXTQbZKULrG5qMTXgmq5kUTZCtnOpkGewVFmNN6W/NFD/fX2FYLLXnBqV+lkpPYzK1uW0ig5plE97V8L02A+ZZryen5B6Aym5BjZ2OKBEQtyo6PO5ofjNMYRqpiEkCs8GVLTQu5vlLdzzdvIXryCAQ7pk6ZLfewwmA6v9rjv1pjD/SDGfzAoYnop9e4z6dRU6SSl9gHNi86Jujfxu9yHN7B78TgnMhd18k7H669iF5/ClwBYzzuZTtVjccPdBUZ9MYlG1zbJO4xnQFaJoUktO1Aahtikk6BTDqyIt9001D4WgGwZqtc8mSN1T3l/Nbzg7OZ5/x2l5yq1X0C49Hz+oblpU6b2WSaWCCZTddmP++n2yiQY00uqRdRdHWJWRCIe58IZnnUNJmdD5VKiQMwlddSk0qgbd146kI5Xhpz46nx1SChMBBRwsKwHq71HC3P7nMyp9ZiTk9rXP7zgLGbWzTTlfewo+xgc1g23F8oM1xn7SCm8VlmKPKTDRCZ6gJygcMr+Bt8VPI8o5Wl5JEBm6B2kNCqz4uUwfNJBNRpbOyGDEdEzMYKHPKaagzlAeiE9atI+9vTAi3efWo85mYkfLaCJXsmhdYDVptexMf2R028dkHN2rtAkqZojedMgvriRwMrCUx+C82BKJSd1R24xO3LXZKyMKUVKnVDh5dDuRYEfr5F/PglkPKVC9ZVocmWVESU7mlEjno5PXbcnS3effizdd4pONJ13OgOZiabWnpVZbzSwTJhWuA5zHBA9ZqKqB5Q8JEdsTFMzXgk+6Epg/M7MQV/XUuvypmqOezJ1K83l4tc4uIbig0VlqYPFVdGPdVxVhOmcDBbkNAwMjD0E0kWN1wcjyLRfSdy1/RTInMx0Ov8u98SuamdVB9aTt0wmKR98qOKGe8MgCcVkXz4amX5YSQD5Ke46RwSqGshFhhp2uiu8zAZRSWU3454MSLdSN6S8dh7UyunklIv/EhUeXVoPRIStizDtMnLXxAgthNJt7cpaqaPun/ZtaqtxcGxfsTnP51VP0TNPO7eW3b+pC78tPb06A/FqSrJ66E4jACauFZPL777S0gGvahrg9iUTecWimrNWrWgRZgbsGDDxAcneVawDSD1lnXeAw2HyDsW5DUA+mPDV9ExYZFuq+FAkL9tPOKf1w/aZpW0rcIpOYlpZIti6DHPT/uTJDLi7rtGqm/oAKfnJl1AZqBVq8J2iCeTZrxFVLURsk+pO2uQTv0mY9TQARNMDCO/BEdOx1A2YXBfTkcGuScjWYIL1MlURrxphiINMu3uxtDA97Sl65mllcXN9dHBtJr3qMRFEFXVDM1DJC0+W5OtASYyljmcT/x0sJimZ8VbPjOZxxMgJs6/fBE8o8mhwyiiKRB5zZinzWl8GwLT1Jx/F7M5TbCbVsaXxVAcpoDOkonhnL8zCfH/8UZdT9CxS+1WUBd5HE3eYVtlg0lF14S5FouCdPL4xhvycv5j1y+lauhFgkA1eF7IM7uSUC2XyWrGcEDQyOM1GJDjRNMDHVrOrbPYxAdMBZA0fFL9/lsDxkMhv0BRIUPOoKmAj8pWV7L7v9CX8baXnM7Vb2E1t8CE5cJEa0aprnfmflpANclKvXUJPRj2NK28kHU2M44Xw8plmEmIbe8o8z5/yFCTGEVkeXuLgAqxJRzw/GB2waAKkE48Dc+MlOUXPE9oIA19DI8aWCQXocN4cRjrc0XlHeB5cuTsycPqTD/bVydMUkwaBh05COdvhMTOvUFwgqfAkgaaXZAAR7R0NlEWudg/LJy8SnI7TD2zxNEhW7gCKbITRbu3Uu6pOalo3055pFrZBymumMlGQKuEbB6U4cQ/CYKX+y90pbRuFhaaNbHaEdGxk2LXJvgbV1znJSVr1ZDQiIf9C5FClKnPVqh/klQp8+BHbdGxnSAOPBR1fkaquo6hqPL9QqfPirHzidn0juNXrE4eFU/SsUDsIrK7N30cblf6XoDAgl82F7EBaMX4YNjUzCPMwqhliv0tM1WJayxPXmHiinLyJUy+pARk9UyB+kzj04ifJ66FGIvWv53mIEUPx8TLpsAwoCvk970zny0cnWQ9SpZYyFrB80LzdaTp66gMFJzUdOopwOB6exDkeMpuho6v8hsjolQsC/DpaLTf6mo6WPw0C6PJrThknPSoy5ZFpVIYgXBD3dQbSQZy5MsaI/CBrhLEBTF/6yO2CjuLXoOcDiV2B9+US8EYVCIslwNSN3bTKtxjTrQVP5uCRU57MyUxHVgvITF6MgHYwiVOjqAweCHiGUdMb1+iNInrCEGqDrhDhLlegCbHpSlltKTDPmcrpZP9RImEjjhiXBlfIBwlNi/QoXz8BzNN4HVObvRhAUX3HgSiBIHlIlK+9LXFbmJ3xcFfrhh98Zr4nf4o2SfsO90DT0RzjwQypthJgAjyDTWAiPZx+RYcDV89PRmfTOogFlLoFumA0OK1DkYJE+ZEVEkXl3FeVj3oyFXQT4ePoIgyxGLbDgrLs9Ye5vU5C9+i1zQfLL6nM2S2JYPSFAYjv1OyIz8K006UvPnlqD/tkpseeLv2Dc6DMUgCZGTdApczGNKfYEHC9tPw8rLZWInkS1Z6ylgUmN95vE8xxKh79vAZ3l2qMvBjedTVCwzT4SJ9+yQvPpXFQVnV8bmwCtX1XZNgOQvWwWiqyHCtIg2yUf+aWXAT43COnTuOdzPTwHgYyc6zJtIcsxSefUQ1KYE1A6rJ9DWfyokV6QqNfFpi4HDkj4IOw1OXCq8ssy00Dg3xaPWJ24RysVVlnkFkTcmtTQgSZgZPGNvSYe1bJSyE8b3Bp9M6BOnIqTMMKUcrL80TQX1dy2h92LJXQTz20AGNnck7Rs0Ntv3z+UQYyc5yc3DYr0yWylhl/pa4kXqFfo1N9Aq3TeYcTwCwfWL2U64g1nTf5521pvavDb6RNIvvXCiyXqZVXZYaGj6WMBUEblWK9PkgIK4BCNZi8JlEeqlQohYuG5Iu2VAEgKrL7W38x2tw5PbWTPXB3/2OzsLA4fYQ8Rc8cHQiL8p9/pADLbA5Pph1IXFwBPpj6A5oAHvIBoIsiH0hSIpGuKDrjlQu7ar9HCzWqTJXrUr4kt99V0oOpAGFG8lUPmluEq2b1SgGVYN4gGtlp4C1d6ImSSA36l0BMv4DnBb6i8EYnNx26W/Ppb9dyOSvTrskcOHwKZE5G2hf65f7He5XvpkpzgMzOJf6yK/ZLYynH30JH4krpN9UT5HIoRfYer9FfrRwttswqpxPb1x6vI3iOb2Ej1BCwFlaSEoxWi4qBZ/Bx0ZuEu2p3jNI9OaBRFn8F0IFtIOMB8c7n7UD99ub52/qwQ0cBPvPIqcXfk5E+9eBC5820hDi9j9oBZNeSHGoloeuhpIEtKYzUZywDrJM2kRee0rt5artIeszXY5ggaR8lDMD+psJyn8FrCk0zL14YMftX7+SIhVZZzhhHJtxLOyZHhjnGzly3ItOu2pcGp3rniXqD7EiyXlS6v3B7uf/APYvQTH8f0il6hujOz5VF+dkc6zFbFwiWZ9oLRra1WyFigFKCQBty0Ts7+AFPT1bv9I3W557YWRZtZDnet0FwZA2Rtx45saX9AzfoZEAmHThzzLokAQZ8XYV4nN125mtBsb8E2peMWUdWykVOGGSZMjLdX8Beu/mRoMz7Dp/yZk42et89i/l6HpDZEkBmaRaHWzZQeYusACOGqgAGyI/nAJMCXADi4OLIKj/SZrJsFo66rJrk8RiXz/sCrN/SMm8WmKRwL8EvpKYqAseEupEEH1ppBBqpWSxBmVoxWWLEoMKbGKRMsB3LFAtAAs5ZYRt7S9Thj31hAZ7Yd2pd5mSiLz4xg08+0Hsy867HnLESj6Jx5aicD+HGrw29Cg6gBsQYIXj0GTINVl4ZwNqdzJ/cdLUAkaayCTXdkyGo75XnikewUY01lXij88cfdMOleBfdRRza7cK0pUhWDv9rmAzBD6ow2q1kfG3KF0Rvpn1I8oP3llHzFD379N9uW85PX89mC3OdkTl/y4YzWFG+B65fJIGDQB8grQGNXEPU+QFJ/Rd2IvSTlYvlQzoQVCGceKHrLO95qQMZJDzi5GFoknheZvIbdCytTCP9L90hXgnJipTZRLmGj7xGtZ0swtn9xTvK/V/fseQC9Sl65qkJg80HPlG8mNnC9KlS+1zaaWFnSXdl0kOtF11c0lvi977+mDAzUOo4X24BKJQ2aHJWZcViT2wD2PI5DWD4KtnE1kbz7DDiFGDgMf78tA+zi7BaDkdxwasarDd4ewaGeyu6HATOQ2XUy/Hr5pwA1mVQ+bZ0bthh2hodmA9/egG+8PipdZmTgT790Aw++vmy6DvPzlK7HrNziZwBCN0BVe/qCHugOpCYc1qEJqyf4tmnvcWAiXV7JZD5E4Bbh3TNMmYH74idl+FlgKoXUm3t6nSpi6MstRxDJssIsqA5inRl5SIQ50n3rgsJFWDy5KjO5+XSDZ9Q3ShJzrC4wTzDbYtlK7t1zVtv5hQ9+/SnH16CI/EdMvNOlS7e0X52WPoD5V0tw+syLXmDLaj1F0/fgYUVAGNPPwPXTRJyALSej53V8RdYOJTkByQhrmkBDcrkcR3INBPylXHoMroNPoY9Dh/nNb+5AZztvjQiELjAozs/dZzNmIC8T6uQzCvLYaPHy04vB/N+733LcHQTL0g6RceP9h5EeO/H2K7Swnze5YVb1w0AeLrU/8rHUDh4pCMdROqRgTiiiQEt8Sr5UC0DAjjHK4qsOpEHQFr1mVNRAKui17VzMkh0RAhNFzhg7KAa2qmJ5ZVnXAjAmQ7ZLWZ3ChUBxbilMZznW+T6Xku6bwSvPUtjwIXY4neUcf42yk9lP/zUDN778VMLwM8m3f6ZRfjMw/1Uqd22bj2ZqdROlc5a6YfgDBjs/SFcfxq1wQAAxvvOB+K0XpPUrf4SXVlNJY9avqDO2OiFaWDl0zquiUbCqGQpaNb/Q+tuPA0dIh4gd15IwN+TIWJyT0SXTDR2L1A0VA6X790oHaq+Kcx6uqSVsnkY3+bWnc3EFn4W1p7+veyM3ptpX/3w79+5DIdOvcjqWaG2/f9daP+N6KrPAzAtvaidKgHXDWfwIqvrWR/40Qwq2mqNHYxcMZgBH9RA6bXdVS0FGXqwt190JVAMwkYSj13KcElXKNLkN+NR5UbLrBkkjU2rnD/Jb906qrzTly/0ys4k05EiLclrAhSBOh2p3FPYi08L3kxcjrktjKTv/8Qpb+bZoL+5cwk+8pm+7dt1hIWF6SDTDhIv2bmu9IhZvqI0gGZ9J3A2IdDxyuUmhgs+CbFAytNFsXbglBMUiIDUe+NlVKgeY6lfk0GsHoL3pkHzuTW8QOgjtAgpiThgic4D2chm6kUlPYh0WHVlPfezjxs+ck18ETgytDtMl+7qr1v39j+8Z6V7t+wpembp//7rle7rBC11ADPHgu+Zy02Y9lqz4GBCatTnYQC+/vJrAxQqLRCwNRuSOs54fBlDSxNo7QPAGcSdMlYoFtPlnfXCNg7DBKJqiTAjtVdAzq8Nv1yng3DWqHODs/DScNKFTXPWBsAZHew6S5PAR4WTl56VAbhMR/GuOptgW/RmPnTvAvz1nad2mp5J+qNbluHu+/jZmOneZItFl5/GvZg0kMQ1OACzFjKoo2k9kLReYr4X64Gk9TEuGKs8ObAlQMo2Qw5o5LTONImlGyOqBVbSzti/0qgjIRMi9sW9dRcSKQRDOvSjowi8fJVryDqLM3ogJO/1qn1SEOcxBMAJLis4QINMEUtce4jr8jNKLv/6v63kJ4BP0Yml9pUO//YdK/l+IQDMPNvWuxYJdm9dj31fvAggbuCRlM6AvvamSFD0poSXczEuYIm0Vq6IJ8eLAUu+7YELTgBVDBkFpri7NDsS+NwvBuX0DFRQlbC8zSv956y/ZABC00mCL96QCQQDHMBGBNnIAKRGnJIPO3pdAQyoyeLh4BADopZedhrktZn2PSa/+55lOEUnnv7t36zAvQ+W98bM5liLaXv6JbvW8jGEBAC8w8ug5Ri/MPz6lMX+krz3eMDe18CBRmvp8Dp1HHo2sQZcilb7nliA9aFCaqQic9WvwaPoDLnVl7h1wbkUd71F/fF/aaCcAiAUmACMPFMCvgKBkAEKnOzCX/vA5CvPKedmfuOvgwv/hVPvAD6R1D6c+ocfKGC+sDifF7M9eDEXb98oOjCgBwVYHH0mdHSX35PxmH3wUjtaGnBc+YqJXYt4RZ5NGWv3kw7Iw6b3ZJpZe07GX/z1DwPmSBLXxH6dqiiUl4avG8seWkodSuK+/21q6yogOyjPicl2ag6nUq4Sjn6azFfm3Zzn0l2UF4H3HpzBv/jDLfn06Sk6vtS26y//P1vg0b19+7aLvQvzrMWEvytOX+vfHcMMHbR+QBnAkp62etUw/RJ6lnQ06RDbLBCyCCqAg9ZD8nS0u0fQA6vWVQAfAAXl/OwUbp72DDkd7Rd+u3My2LjuEIG7m0SKiVQk8ZwAKoDj7NyQbAz9fFFqNC5TGLpqfN0JouHdRWYHLKB0rgAb1XmCh8m88kzKr4FoD4f99juXT33O9gTQb/zVMnzwU2zLenG+xfaztzRwUfBigC3y1gwfQBt3kdPfW8+2J6yAg/crt5j1BkbJi5Un3oj4fD3gMQgD1ad6jfVK+RUbT8Xqt7CbhbAkSZM/Fc/aK2bA12BkVsbdJNtZUmiMQ8knOqTaUeQDCsjnjHicASHyFQpEnPKyAKrt1P6dEdYgrzmr52pHu98KawZ3fPbUtOl4UvuisH/zlyv5jYTzTpNa1itPW+sW7JuoGFW9hWiwwri1vlVOl4PVrRoPaNsppZXpGT8or4frewIuz/aEXcVr4NdUf8yhZgBxEaVfk8GN5iilp8A8qsSMrSqPpedxonGTbBpK4ng4eQRSneR2BjCX1+Zf4itKQMXj0fmleE7tKeAL4is6nzqA8PO/uwUeeerUU9rHg9oXhP3T39mWnxNrT/bOM01q6YKtDZy7tWGGhMbIu9+kM6T0FThweLtRtd1Lec7KgAHofBD4u2ykDWAdCCoUixbXtskmplL+uoCe0AlunZdOyxcW6HCQtFEaxBaiavReR1T+amUkJYsM8Oj5KwBpr0X8og8KkafRcpSMbm7t7liB6yr70yZZjpZet5u6Lxu0dN+jC/BP/sNWePrQKaA5FtobAPt//o1tYjdpcWm+aVL7Dt/rzlzNBqUBIvV5Q5XHCvJfDxhp7aUBxw60njI9FnpZ5QfQz/dxHXPTOuHA02gBnAacQZpyT9GTWVhojoSQztHEgX3sGlDwElGBRVcMOdfuvehkchdaazJt5zCj50ADacF4YJQh6/o2NKAMvCwqrH0VxGvOL+szt3xiEX7lT5fLt5lP0VzU9sMvhYXeWz9TvJbFpeW5pknts2ZXnr4O2xbYiVrPODPA4PDA5hiw1StfJwGUjpOvR1muMiDPPklfOOUTfHnjppSjSiJOtnlaSQnN1oPMxsZS2F3CyWsyXj6kQk2jDFzzxpINSrnEugNtJ4Nr6ABQGQ0Kg1nzoUo6nneW7WyH83KSVKL2fTM3nNO+mLo3kv/0vhX4lf+2AkdPLQTPTe0aTHuyN63DtAAzzwvC2xa/aPs6vHD7utEbqU/SkwYAMxiJMKMHcpDKYeketR57a35o5IuyQj0s6a8mcn9pIA6quCLWYpn+h8xX48LvoUOAtAETyCJfEUzZ70L2BzYB8Qa3HknJq5ym5WJo7Do1KoEBBmIJZBxaJQOrcKItqW9cGshHh7f0orCl/dLT++u1AO3//l3L3c7IKZpO/+m9y/Brf8YWervt6vkW09tvKV152nr5xjWBqwNAUgcET9QBd2oEEky0LgldyUDQL5d6egQwpJtpe7wwCn0Hq4dgDE4F6XgdVYvnB3cR17teOe+88wBniz8cLndFHp1GXqMMz/GIKqwwohKGPbvhY6IkD3OB82WXXxGOLHNEp7z5Fw1/LRxFuWRePZwyJlZ/mWcB3Pa+PZz3grAIfGgDYc9RgPXw+6Gw9boSlhJecUkDi6c2nqrULu7+znuW4Rd+bytsNBifrl7svJh5aDlMj77s7NWwRhY3hPXhuWywaNZKGlLG7UyhGjZACmDJv5XdJ6ocoajIASq65Q1o5ZgIGsBJ8WDiUPC4v64sFd+L6b929eijj26cd/4FPxIuzxCAwIoh7tHGafDh4ahBCT3+AhjSsGEcBPi1ADFU6R1ANIASS+MCDeV7AgtSPB5UWTgQRU44L0yd9of1mKfjl8g/8tkWaBp4xQsD0JxaDzbUei3tk9X/x59u6QCmpdZ7mRdg2nWYa89Ygwu2NdlQrWdQ8USYZ2HiDYBMBBgOVky29EYkEADPn5UrR2R3Atk1CC/GglFaU6WclhhaeES1+5IkH9agc3fv/nvBAM6T8QA2zQDIxEgBMCxN3fhKOAKqe+c3XSuE0XEYjZ7LEmVnBUQBTjIz4zmJMBCV6bpI1QlUvuk+fd52fxid9wWgaV9L8JHPLsH+wwBXBaDZsqS78EuX1oK390t/tAV+829W8kHG9oXg8y70tqyvOH0NXrJzQxoygG/4VAEf4uBggakqN8WbcBSgItP5IAjO4wwiLaICEsZXWgS8Q3okFJuAYHobK/pEdszPv+AFfyf8XFKytsQBww3P8ck3KeHaiDX49H8k4r0pTzZmlak3beKejAYrzlcP97wdkl6MiUcQQIum6ILaqVF7fuZwMKKnjvZvc/vo5xfh/sdm8IYr12H51BsiuqfX/8m/3wr/5QPL2YNpH3pcmhdgoH/b3eVhNymlMoYrwotsH2zsAq0BBQM28TEE4unQ3XwQ8aZsfhkEOa8KzQJUy0j5GJm0Zds2GqPgkH+kOOUNPQUTqVopw4d1AexaHy4yHScSowynxCdfxVl4evhy3y/j/EItPv41CQ5JKqanIJ6SeSPccgCa1+8muOLMUsu/unMJvuv/vx0++8iX9rzpUw8uwHeHdviz25byx9naNZh5AaalF2zf6M7DLIDSN6ZgXR8zoEjPJJn+VB+w1/rl6Vvf91TXc0c3ODCYsgL6euvIB56PufY4JZ8nYLD1c5lwf/Zkzt19wdeEn+s435A3A+jhnPZ2komr6YxJX6YgmtdOs8gUyPNS7D1KPgB3zUaXDVjZPJek5tFA9Gh0WfsfBNMg2K/RtC/Tf+xwrzxP7p/Bn9++DGftInj5hQ3MaVPPaWoXTv/k1iX4qd/eCl94rKyELy4uzX3Yrm231oO5ISz0pgV7PiDZAQHrAxFgOZRXS1u57182rs9cFVkNaHBBGDqXk9IBOIBAfXpvUNN8JS8OYhVlY8EegDkJ3sumS7vfEAJeOyBT3jP7rINMCSkGjgaoyr3ktUKZvJRWgwiTK9OBWTiurr0Iuf0/dpE35YkDZYU8fRIk4kpge9mu0bTf1X4yTBGObkB3UO/ddy/Bw3tmcM2LNmDbit+Vzyd67OkZ/Px/3Ar/519sgQOHU58hLC2vzL1N3Tb9JcGDuf6sVTlGVb2G2sHMAj4tWe+GAQJ5wOOctYnTEg0aOj9ZBglcoOJAlAf0sg2oJohYxBUffKLBWwswBR/+ooDM7oteEar7JocP3PQV2ypZYjHq1H2Yowq4aLBiBq/sWYCK9iA0MOlFXQ5yNg0aGbXtbTD5KN9R44lFXZW+JEyA1D560K7TtEBzaL1Xmk88sAB/dvsSnL2T4CW7n59eTbs9/Se3LsNP/NbWbqctGVF7wK4FmHkO2rXUttGLd6zDVWesd4vs1WkFYd2DAWW0UJk+AVbSDIAWe62nAAlRJnA9DA083CMBYIZGnowiB1ieib/cS/Dwwrg0FHe5GH+cQea8885/eeiVb/ISu/exHr7tYG4KZN4Jtzd9beIq4JN4eIbVXSYFHuNyUOQ7JS0KNJPyRB7ABek62sZsHz24aGd7pgbhiSN9x7YLoH9z1xJ86uGFbvp0xg6vu5+b9MkvLsAv/N4W+I/vWYY9B8pzSO3T1O0UCTeBqteEbeqX79qApfh+mJa0cWYwoIHFWrCPoyS+/iwg2vUYkAu8/nqfPA2ePRr1fSZwgMz3LFCW2bIxoEAWiTmtI9rQHD0RajL7T+WhD0S78EsdlxAa8VEgHoK9jjJZscjnjXlkLorpSHkIgjAnbD2J3BnYV6vdgJipOlDMEKMtt/FNuo55tvezmGETGNvwJqZpoAeDWQcGJW2fJpU51ayUp1FATLHMXbeKBkPWKL0yrYQCXHd2/9Kr9z7U7z61Z0X+6iNL8I6wMPy1163Bj77tCLwg8CzOnnuAsx4at30t6W+/axn+4H3l+0gttV5L+z6Yeb2XlroHHsP06IItjQUNYezoxqfrhvHq9ZKyxiLD+YJvo+O4bA1cDHTcRWSAAS8rggarX39Tfnh42UKXu0o+cA1fD4WFwLUGNp7IILMxW9gza9STBRXIIpiIZgKkIjBAX2FkQIqxofJAn4Am8UMxyGTHaWTL4MGzJRBzUVKG3o0UMaOcC5cfeRLQcOHEYTLGtUowi3nGMVjEC0Bm9zmOez7Ak/VK0J5KfdPFBJ9+GuCePQiH1/ut7j8P06cPf3oB3hi2ur/t9Wtw1cVh1F50u/ukohYoP/vIQvfyrr/4SHsuiPme8QRv68Fshs5eacL6yxrsXGyyIQpPAMDxHmrGi9IDIhuX+cGChZGZ5WCRmS66cO9b10UjrBymr0DgvUC8SmJkZu2hfu3NHISwtgQLe3KNrnn1q1/WrNG9NYno3aON867LJg7l8PTRbhTxJc2MgYA4S4PqN/LM0MbP8j2Ve8YzQ1L3Mp8Zz0PIK2G6fDNUcSx+qF7g3HPwTAcLnzrSA819+8tI29KZYa3mK65ag6+6Zh1ed/k6rJyEB/naNZcP3rsYgGWx+0TMgcNSq9r3wCy2L5vahPeS1l8u37XePTLQUjK2/rqyWEr+bw8YZaRvDB8aD6NxTvJyHtdj8dInfg6OVAPCUh4OWhqMeJ2BCnhlb4bx8N/kKHBY8DSrom1P4gK8LvfyVVdddQYsbtmTUFMnQ5Ua2YBe2TxxQKZPkAAKNS83TOAAgcAXjwUQRJkaZGYOGFkeMkAwGwIMw+MDTS5X6wmBBBmeHhQYuW3Cwvm49mQAm088FcBmHwhqPZmXXtAEwFmHN1+/Bi/ePem51xNKDz45g99//zK8MwDL5x+d5Q+uJWo9l/ZwXdfPm1h72RHqfHVYfzl/y4bwkPmUqL8nGPdm0pkqy1sAoo/zz8bUz880Or2brw+AYmqm4oHJ1OADJIFDhjHgRcsLrH04JGhAsQCTmR9aWzrtatGjV117/YHQS9uhQlgLizIlmDAeZWR9GhL36PEy45opY5xxeZi8jGHPxPdIerAB8ADGASkDJmQ8FZGOA5LKFzjI8Xq57VXuS9sT7AmLwZ/cC/DAAYBVB09efuFG8Gw24MuDl9MuFu/YemLXb9qHPfcdCuD32Kz7TGz7id70QilO3adKgufSgstm1l1aahd028cDXr6r3T1Sb6MDOWrnT/VUDJUDkuc15JeYCcDgcQT6NC+XIQ74kZ+3n66+bgSgyu6Gs3vWHikMIp+4V+GcappTwhPAdG39sbvv/PBVi5IR7w99dXnPhwIIBtWSlw79eL6A3LEx+Sm5WKfpIhJy9UidDc2RRzz/VEdVHnR4kSdj/N2CLppqyDp25YgZoWonVRYxVOT0rBJt68d6yUYo8lK3FGkIZ2wheO35wbDXCD4b1mweOojwdPt4QpRx74ML3d9vvWMZdp9BcO2lYUrxgqbzcM49vYFzdxGctp02Nb1qAWVvyK99/eUDYQH3c8FLabfaP3b/Ajy0Z5Zfw5AoeSotqMzm/OAap7Zfdm9t4LJda3D6cpOap2JQyeDUdAJBLJpqA/amIu0/5pUOMcLdhubgJvhV2XR+LD3AsGFrbw2UDJGe0nU6HY8GYDhpu6+WQ9gZcQEPtD8CZMJ26f2B5fLeaMhk6GYAGjzA7Eh5/BSNShtSuqeChv0OUrjG1iUURhavM2uvOWlxlQSCFNw0MhjgyTKAAIkeeEiAQFKGWQJBFsfzzmHg8HTXsVUIxFRUpIthMllcHF6CsBOF3Vcr94Sp1IMHEB4+BPkJ71buQ2Et56E9S/Bnt/VhLbic0f6F9ZxzdzVwetgS37Ut/AVvZ8ty347blgEORRmHj2K3jd56KnuC/MefnnUA017r9RVOx8NrSU10ftgxelFYe9m9dYM3Ceh1B7EWQ8roENTUB0YBpjaNaX+9XaaSb+3ELhiQy/VR8QBOudQ9r3u+ceNQZqQsVVr9OJESCbIen29/BciEqn4qJHqTZMWMfgPyTM7GcwFhv1CgRuWW06LIFQvs5AZGBgZFNlqpCYQyyvTB3a4Q9qUQu0iZH4RFo+MdZWVObhj6eSde/mVCDbKUai3kROAEMKc3ufeV0q4sIFwQgGN3AIujracRAOLRwz3o7DkiW+bp1us52E5t2rvj+xKb9gnp2cKsA5fNrrUUWQAXBs/l0h1rcMZyP93LxqPABYQhVnaHeqkD6y6V9+0aPv+ZOD3t8WSVszRkAAxS+VidRB0Fn70nzQuKN/8O98kY4DgYBXK+gJ9vQwTIBPf28/2iAakEKY3NCJ2CoXPNUYHbLje0nGs2HMhGRwxRkM2/8zTFy1iFUbLULDSef0HM29Dco+nO2zAZTbzkZ3CaKC6dh0H+CxHE4nU6V8PXcDigRYepNBegaBuBX553w3lDJithQfS8ReyeiWo/yXIgbH3fvx/hsQA6e4JXcmS9LU8RSjSmVix7ARqtp4JdxY4HqPTy+/Mu5wbPpd010tOiAigoDE8bouRNhowChDiP2AFSMsxCrCqPBhh/7SXlVV+s1YfuCiiVegHIuoNqF0HE0ioZHnvN1g25PAU7wn+faa/kdGkBv9ApXZ4+MGvlCuyVB50wIQHNDCL5J3yKRbas/Q+B+xxGFdVkRh1lkGDrOzwvbz2kiXnPmKyGgUaOA4ieCpYeZLwFBUgWnQETiHpHQKayOMzbKDlkou1ztlH5YlnSlGp76O12OnX5GQBrYUR54sgCPHZ0oVs83ruK3cIxAVU0FfNPfp3FcQATkUMQtSUAy1kBUM4P06F23WV5Rg6wsOqq+yqwRB5+wI7HeUCQvJCUrsSjCz6NB05keaDzgOQ6jixLWaTOy1qi3GjAgtsNry/vRe/AnowH0a4APp9370WGOt7X/soTTxv0+V6jqSquplLCbtGCUWbKQlACDYDABZ6XvufCSd1nywXVkgkrsR+FenAgIZy8tKoMGShYgTMu5yqyGwV6/fpNyx9hl4qsDDrAnUn0CuGCJKBqv1gW4aBEnqWAjLu3Nd1fu6V8cB3hqdUZPH40/AXwOfgMvdi8rV77rt2zVzbgzAAu7WG6bYtlOtSw+mkj8BZUybsn3qM+QPTXZaHWneaQBYXxz56Au3YCgANlsPx6YRnAN3xZT4r59L98NgE1WQTAx8laPvkCncio+9uXZ3bhl2jhccCNg+Fyu1RXK2MwTAXkfEF6M4VQGqQoE4i1F82PHh+xlkKRS55W8WtezmzpvJUR5PoMdzuoPHrQhXRAQvnxhAIuxWPpvSPkLo4qRJGFXoMzPrVBJYqnkyLjYY5J96rP08Jax2nL63DJdoQ1Wg+7VQhPBsBpgWdv+GtBpyE4Zmq/0tCeazl9OYDKCnXA0oLKIttpJGYTniFQBPpyXwEXVl8vvjHXPsB4eaQ0MqxyaE7zgAQgYPXiIKfLDKpuXl3LT69swtOpAIwgHIhzeN2wXsDeW2+9dU97IadLs6MHNmDpk6Ga1/duNsgcK8rrhhG4u0yaT9huxUgyMESZnjBZ1PyGmpiWcnlSun7RF0XGDfMiuh0RHUfF05hFhZmJeUt5xqmhHlK7szuk8ERiVAdIfXBvODNWLOHlALApU5wUEZQGSGJJtbujDCiUjzGG/5dC5Fkr7R9bCQgZHwgLye07iQ9tzOBIaJC1ML1ap/4ZJA5ALWi17bKE/VmWrWFNeftSAzsDmGxZsCpsjAnATAOShyiBhhkYwMBUqRhbo3mFMXvrIyW8YTJcb8iAD9u9IqiCR5+mrBOBUzYAKjK7OALuDXFVABbWE5p2Bc1biScYvi+kFLWB2xO7AJmFhYWDwXX+dFDf641VKo/AI6PvyjhyUVhJs52DAypgbJKN7HE0I1VHz0uJ13wthZc3XesdJrHwy3+BL/hKIJnxigHkAvXyKXsnqRzl4UvoFrd7maldSPCm+uddKA7GxPbj2OiQlE20Jaq+qmhOBup4vSMARHuYj60UCKorYInLyo/SEKgiJxlniiAtK/OAAhdnQViBB+fVazXe6d0aqAhgMXEoZAI48aq+kpKe6+kS+m2h6ha1SMgumsHydjrPCXLLZoJa/ZzBnSlIHFq4/fbb10JJPiuzoSGP3s12WqDHxP+chgNfWYzikK8YuvyFD33ZxJUk/nLZ1Hchny836Y/iX+al+ggIldGRKVb6aqU5aZr+gG2LUoqzbdWwsgOB/1pSzutcz/VHMk/bfur5nlzu+LnX3O7kHoQbfXkUsfYDmffw082VA3oub6+/Q3rptS9XwiJH8xJoAzLeBkunYkBvUxcedLgljZstOZzpGj+RQsyjrqFtP9ZNlTo+5gJNEJ/CEcYDU1By7cs0wC4CY0VMHtFZAXm6Ur6E5GSnXTlBTMUS5/UTQLkjJQqShmTuQoHxiBDQVjqJIuGc9eFYvAwC6fEBgdxpctpRtI/WynyUgPWt/k1VIzBLVLwTUryXTRZX1R8EW4S+RsTqnurC8+RptHHma3WfjRkGgCRfq7URE8/PuGDlPcB+ObQXM/YHjjyvvrmdYvnnmibB/PEyNjoH8XJjobk7xRqQQVy4J5hF+9jdrqLNw1mMEa+udy3XbqJ7rgwRCMRjB+WeWOXIZirbukRTeU6oVsCGiWwQ45pMv6jbbS2n6RSUZkrvlmnjk/xUlbJdjWUalMoA5bQvAohDiZgbAeKuFIgt7OriL6tLf1nc5gy+HLy0KlFpKxFLti09KsEMhVDudhG76g3EOfvB+rIYGWYwgGzwaAxQ3INdWG3/sdMYNIvCuRwwcJZGgYp/jcPxvNwU6wkyHgBMGwFrp9ImfSA5vSuunf7TQeiECebUxf3vw1uIHkjRBmQWm6P3b8DiA0EZrmQ1BTG0jhDLczQ+YwMDkLQAmhgzLymgidxccDoTIgAyCy5gxBut/S0LuRA7hq+vgLDo4plQPMzngBGkxeJ+zUZUnN8m4IHiMdhtbFYFKl6IWrfOgIWprQCyK5/bTbUpEC+S2v0b7G9H7diqvFVo1ckACrykIWggyvdqbYIfrEvpSKVz+atGnhZra1vdlXAVZnanAP0zOpXrXH5g/cbCweHtZTOA6ZoLbTfpa6WTHhG/0MZdFC2Kmt29traW3w9gHiS58847nw4aeZvMgUMCv68TjdwP8ct5pBr5YssKxWMy5KlVqiiEcpNJdmg6/lZVJFLp4m8DWlmR5Yd5naamvA3ZMqX1HZ5nw/kJ7CshWXiSmfPW5Sd/7aWsK6V82PqPSG/Xhfy1HGmcjWlzr03kek5a42o8GapdZTv35eP1b8BZZyK1/sbbFMY9kNxOKU+vTjReZ2A6k+9ZHKjrEoBgEIAq/FVBIyzoRCaGbnRsB+qN2++6666DicV7/Vhbv78Jo+P3ysl42wposiWoey0iTjHy2+6aWFg+M4F52pTroQQQE1SmA1QvFE8fBQpHJZUDwX2eiafrPJ8Ymb0sEc/emJeVgPI0TBy3Yd6RmF0kFl7O0lCsLjFQTxnZLx/URHtS0VF02wnFuFK+C1G8B5GQ3MvCq+PINyASBoKVcGWgjhGnKYMFieI9iY+tETvGn8MJRnebGB+I/Mt0DkbTJ4CRu0JkyuP9kmwn9auv56JetCXPoSX8EL9333GI2NwGtHAAqNkhBU0w3hqhLadX7vi8NbuD+vkZkB49Zesrxso8OQUSEjC7NRpVmHb0SkDTH7CzZU8jH8ab9H7hBDoJUNKWdykriHM3pY49sCLk2VmfL68Dl5Orkh7RQNPWeTGdpAjTJ1TXpSHg8AJpiIUsD/EBInaUNFKZhgMND6MkixsxgDDQKWDhT6F6yoAUf/V2N4DeuSIABTwElTaiAhYwxOf+qnYa6ZOh/jCMg3ZfDC1Mzx7BhfYNm4VckDlr587PPPH0/ofDZvdLowgQWwg4vQwCCLAYn44vMvjCn3r6WmXEd4l6MNKWnMXYgqrytMHiHE2M515HdyYGKK+jUJSdypYO8DVAQkYCyl52lMEMOuWZ5fAwKguTSSbyeyZb/iv7RFyzNuC4m/iqyjbEowJrMrhia8PogzE3LDcYbjTc8PhBO7kG4txDBANSzw0pcGmpMV4EjgNSNd4emqNqeaXHpuMBwADJEMB4/UAj4GPihHGXATxHIGX9D3R3wI/7eAr3+f777ruvOe/8F1waiv0aFA/8Yc5HUw1k3DgcMACQWfVAw+K8tDoM054M5nuRD0re0lhaMDjWKflR89TSqgIQR1rtUXSC+3xKJ/dzdFNZlt7kRV65ZWJSaQmkEXs0FkeVCD7bJlYWzyg845LhCOXxAhw0SOHhAAwCTA0YzEnhzIMwDkDI6l2pY+7fXhM8PtWcAMTjlFI4/VoVNi/lYmIuBOaHcWe/eusH3/8+zl59JXxI86chyT9KN3llDXVOsuwe2Jg4YmVM5QV5LcPSrsfAE9s8TGAiZpQlrsl8NMeoCGIRBKyh8nSxFymhOKhmEWmlyO4voQcrdANQWadhWWOv3F1tUHo/SRbfVEPd3l08ir6QxPoUS3pRkZRpLg+vu644OxAWGbXReUXRoMGSA9+S1dvW3JAt2Mi1GQAJBBRLWz2Il8uiQEXll0GDbH1sXaTO8rbx6lQ6mZUFWD7mQoaZ7q6Qz1fyFsrWtVkXuL9pmnfpVPXvTpxzxgfpsT17w9Xp5ZvROFqMyYTjLHlq1c/1iv3SeHrSd4TZysokjDEXC7ZAw68VcDSgipKsWVm4OG7EQSdmZ8EFxFoUqjZJi+LE0uais3xEllTy5NgpkzCUJAB9qKvI4QlJCgEWLwBFdhqpG1JhGgy4XM9IubdR4mqgYgGmTzu0iyTXZqp8BFUeMPco6u7Vq7QJgnyyWvaP5/EdX0oKVG7FIAP4wGnbFj+pU1Vfh/boZz+7du7uC14aAOaVovT6lNcA4YQwZIFY4ePvLEGu8E46Y/F8OtSqCaI0nFqm7J54HArpEbDQT58C0e90ITf5OChHJp6WVN4AZQpV7kHIEMrNwxCqPHL7VW3FgixD4cHMW3uhU5eGwI3TuzlumUjKlR9LAwZkOPzskboHmrDdTLKNBZCQN51CWx8BPghjhweBQPZr1A9gMsYAhtiF1DdfJ4fCUxE0A/vU8r/8yG0fepdOMvgFrRng74bG+x/6Sz7GTQMYAmt3Oozf6+ssJ2FFRPD+pUlsQbiaL+bRndiJvwQ0pr06Ft4LlDACSGemw3WhWYX6r0bKfNLJ3ZSGey8ceMXUiGQxibdPahtkdQbIc2U9xdTnA3nxAev9J/hq4aqtaCA9geXLBgVlvYXzkiMjbft29xlsHLDgMhhfo2R7AENOGbSHJEAIwS0DxJp5ZdT1TLzSi+nzScxUAY4a2EwhHGJNyycotQMXV37PYx98q/ORWfPRkFP/wCSJqqlWs6qo9EwU3mWOv1SPYhLkmQPBzzudpxVnFEpnpaUmYum1C2yesPXC1ajJH5Tk+ZSHJp3FQiqK3+QHBKNnEHkbzc/y4wf0kmdRvvUjD/WJg3owcKCv8qfliAODrK10eUVa4nyY653apiHvUFy5L4cFi+eivRv/wUgUb7FrtGyeBmS/1oAo2QGBE8/5mL5wfcv6CyoPKHL7KCp8Im8ZxkSqm2pQLo8PMMj+gGNcqsCt3/qWr77Pkzn49ugnH3740Dnn7T47jIZf3guOh+N0vgM0ZcpkwtCZxYi6sR0nWWcTXsIIAMVkS+SDTr5iV8bZDdL5EACYU9ypM5xKkxoJCJ10ThypeFLh4p7zYJnSpHrxdRK90zRERpFTeMVAxLoHLxuVMvjxKow0H9qwyn3ewYkA0xJ/Rsl6PPXplg82KMJLe+h1Iaz3Ecm2ywDDyqzXpbgcj2jkXhA6zCYMrTdD8HO//3u/8xFP5PgHh9fhN3AJ/ucgblv/SRL75HMpHZkQjwhGsIlAPU0M5uXi/W9ypUm4+CmRNHiWOHGq7ZPUZjlfYgf0YieXF4P3aRqQUxP+Tt/8Ppg41UnZI8s2v9iqq2Oa8kCezhRevpVPFlTjPzkdv4835TAwirRdnOk+OZ0sbe6T2/PRCvTWrEmX+pakLA9osjzShuwBC4p4GTeQXgHDUFyWqe9Nnslq7Bv9ACTA5Lah0vrlNK/tAZpwPRQ2SFn/e2XKU385XfrCyiL9TU3E6Edwzjln50OhYv/FFJB0SeYrPoFtEFcBBxLSgEx9ncNy2qQoaVuzuAa88xtzT1B9y3y8Ls8blTMUQ8/ZEHf5Fb955giYu0/F7efThfyMD/Gy8KlaKWcqg34+qv9saio/5qlLeZYplQPle210POgyq3qRnbrxcjSszqIcrNxyqocSCKAYtnluDEBMLUn1melbYjpDUs/MPXCdIyj/9WgqeJxyFWJrTUImiDAw6byAYRpkj6NkLg2mNaLu73cuvfTSB6tJYQJdfvVrXrkwW39PuNyRpxxi2lQHmbERECpx3s4Rsgu+jZ2dSDmjgeqUCiWP8BB4HEpPQaYjGY9MFirZ4t5PB4aXquUYqxMA83TY3rhu51rb8vvUzGN9WFNwGuRLnoY1olITa1Cex2MHD5smG7AxaByMr02HtGy3LNS3XHr3DCAO8BeSYWjqrvlNeidwCERoMIJpA8o+CwGPLcLCjXfe+cH7aiImfdHriUe/+PB5uy9sT/++3CiaBzBKI8eQDGthaOOxyoOlOOAYZfzHM24hd8gSTcZSCCmZnixutOne4yXksFTk53gVpg2UkK91UJbDt9tJpfPuocJDThoArywwCDgkyoXlVxt9bDSvTMBAoLaGMwQIpIzYS1vAAP14nS/ny/VEU3+YA2CGUIK86wkAo0yVUdKTOE3C8vmb9JmeyPabd9156+/CAI2vyUSaLdA/21iHt0D3/m2MazMEZW4WW5wvKIxWpB6fwwjcr1F21054Xh1HOQJ3v0xWHGByXH+LEazJdhTKMuV7YphD7EFIAHeNp3vJOMaxjZeVJBDqNRxx+C4VCUv5ZryoMbxEYz4CkMyZa50AWCofqUH1kvQ6lZxEzyvNJsbP21cv/OZrbrjpOrV9Nvg+QIAHSVCyAADCO+GAIeP4vQUiXjYOJpJHelaiHGSaqA4wAO61Sa8udLwmrPLwAiebjvpTpgz7cNb8KozQ5G+TPvrQQw+ee/7ua0NGl3eFSyOtABhedEtjuuo6ERWPiBu2fM4JBa837eIB3DA5YNUL5PNQbot473kdQgayNKjiCi+xTLICI1bKYBWRyyGWL3GvQfyVBN0aBFpPg5w0XF7mE+dLeHpZPs/4czxZgyoGWtqOGy2XBaJsAOIlVww83PxJtZtTNtO2pNpelKOU0/BA6azSTzI9cF6HuOxRY3PlJEVCF316m8PsyYRNkN+6+yO3/zsYocmeTEvLM/qJVZp9fchli3KZSqn1MMmIYD6PprtngaSzSp3FgKbnSWNxUYSUGCvlYAv5kL/AGF0N7QkBEylfxsuAJq0zMPAS5WGVTDtKyUiQeVuivtmjSfexnlTqmzIinSdIvSntVQrED+jx8uV4R/EA6krfx6Fhpkp6cniIy3HDobr+ktPlsALWxONAAxIxwEIh0+RBHGDkATtbFqjWoYSTiONEI/c6crhfBkL5TAStxfYHPGHPAqz/Akygub6y/vDDD+857/zdl0D3yZSCbF0Do3Zk6nAyBrJVBwJtvLgWXg8aHuPVoJOXkYGuN0VCkExI+b54VtzwuSBiN2TCYWAdRo14mAxCrwWAPHkK+lp6X5xHZMzi9J/HThUwoQqfLFcBA6ico9HGyo0agBu+w0eV69R2pLwuxuMtOpd81PSGauWq1yXlC5V0+lpQNcKy4WCkVNakz1n3qZsy/fOP3nH7f4MJNJcn0yXA5u1rsPjWkNP53LD6UT4e1suPASOA8xLyVEnugQxRqje/hyQDCqbZ8KScJHh5/jmBEt7mlx9+TBN8VB2UFIBV0zg2vK6sLvo8C8XSJr60LqRf2IU8DAowpXf/pn8x1jsdmkLRMmAeQUNWHzDtCKMKPKbfxeXPJVPpY24kwU+DQeEvco3BMzk1vklg5Mr3y0RQBw4PKMDUBW2bjKQTfGwgQRjLa0Bm6mymrMI8qHt528fOPG37L8FEmsuTaemRRx7Zf+7uCw+Fy6+GFnOy9uvTwMUwq4Sj0fKGtKdR4Ueuonydpp5hFeyQKz2CtEqPT10D61gOlMmmNHhmZcE8gggZSpZRcuRhzNvBMtoC8tFSjtoEdaOikTDZRmh4xDQlTi3liV9WDqqUhZyypHol2VEOaF5y2qtLb9vYW5sBcy+9yUFvxQ1Dlrf1XnTaKfc1msSnmdJzbxDNr9fF1fD3fbd+8AOfgIk0ehjPowvOOeO3w8h5B9/S6v70U4CoDNOhqY3kMVYbnClBCS8jXPejFaKmIKrDy4EqqcBicY9K2mJcKA2EwH/hNvGDe/08Px+844ZL5U9+8I2FUcmnxtPo/GIe/UE6diCPxZcwFHz5eS3gz2fJ55G8MpmXg5NsE/1clDiIR5DbJf+SbV9gdRTPjuXnw2z+BGBArfyxnS1Pb8DqldAV6u0GoqzERFRSM9Uz90RSNz1+Hj40mGfK4w5mgMn3MdNw9Rff+k1v+QuYgybl7dHVr3z1Gxpq/kvwDs6OczTLlOZDeV6UqkuTCzIa7jgW4trxfDq1wJE0scio5AgZKhw9PiYrpUtTJDTlAnc3DFHDJeY66PS8TFpOvkc/rpZmMzSk8EA+jzbQBAx+mNyl8nizQYNM4w0oRoZJx0/rKs+HFAAAuN6IlC1lgJuvlWHCqB4/FD6ZWdr1Q7hBb7rrrts+BnPQ3NOlRI8+/OD9555/wXK4/IquKAJMQAJL72tJDWeUQmqIe7yAxsSLcByJ10aMBiyEog1UpByIK9MK4DKQKT4L59vkYirE8qyNqkOLv/ovyyIps/pHJY/6yK+O/+sykA5n9aPSTt6UStSVTX1k3Pj2snsPBRR42Wq8PFznJYEw2gbYaRJL7oNLSkZ1HjDSPUIQ2o2+jEir4eb/c/ddt/0lzElzL/yKAqwd/qXZ8tZvCZV+ZdrS7ipG7EFK3sLdT/xlFUostQapNVYOjxecT1wbAcz9w+T22q7iLws3Gbc/eR2qr7l8xSfTglQ26pUrgVRpirgFjSVfnqU4dEhcLTDvNGGqD3DXKb19h4SCs5L19+hUT1uOSudeqyYkT/sjs46SBooyjCf2gAW4TO8BxIFdH5GvJ1OXBVV+YGQbOS4/lXKRlePda3k1nqoMsxHD0TCd6i3XsgPxv559xvbfhk0QwjHS1a+88TVNs/HnQdLp6XxJUnhx+ANSBZPHM3+BMogpK/HwA115clqHPDwVUYka9IhQjwV9nVMrlLG44hmZslIl3E8HTK5+JSmq+Ahvub4A9bZGL4DAotMAkZOY9DBAyAwOAAAHDZeH18AhhUm+CjCwtAVMSPHhYH463ItL312S4Mnffaz4oQI4TtvTyP0kYk+I9/qCID+SiE/NVmZX3/WhD30RNkGbni4lCtOmL55z3u61oMDtblP/lddkrHy/PV0jM8tNAM0QjwcUlhdzcSTcoAEgA1QeCKGXV/EmpFnDQMFB5YgsQ6no4MiqxZHHzOWne5UP/6sRj5dpLDxyDwUgeQTc8CwQ8Hy6XzZGyTKkyqYVL7Zj5ewcZVnggIkIZ+2R8q6Ui/PzsnLgLGBH7tcquEyeh6cyQ/0ybD/oCEKh272ZJjvBdUL63o/d9uEPwSZpU7tLms45Y+e/Cs337wEY4rKtbbH42/3WPZmkZLljN0FeR2klkOHxng2B5Px1ZSNlWMT+QO3E5DBZJ7NuEcMal9/KMTtRpMLBeQMdqJ2ffB13hfhuS06LMT3mVzyUN9GV7Wf5qoeS1u5e6XIWmXzXifMZGWQBLZdV95kbJoEk8fV925u0ONTI+Un2O5CnowVQS9ryapDuDgug6fJw4no2iCoe/2AaNdAjZPvMMkqlf/3mb3zLH8ExEMJxoiuu+LIzZ8urfwXpNLCZ6JMa9kleIvuF6QXLAzCpe83j3TueSSoQDsR76e30RMeNyERfjuUtLm0pK5ZwJY/LrN1DJd3cxPovXdcGChq412m0sZVodA1xmJ8kD/lyjMGaNH5e/Q+a+JKuNJIn29wz26hhBjefcVIdxO5YIXtOgncs4Pq33XnnnXvhGOi4gUxLV199wyuaGb4nlPTMTnh6mIrvOJlcVfN0dS9hYwXEobAxsInZ5C5HtEDDioie0buAYsGjDyMnTPK5ABT/kWXjygLQv2GP30tBCIzdyUvneSxEU+OcEZxUafy3wyl+qsugIVACgNruEpfFDb4KPlFvq16JI9dcl6oCq7bbTh6RSIBSYK5AiafowXCHILV30KbPz2jxDR/96C0PwjHSMa/JcHr00YceO/eCC78Qiti+EiLvXLlnaGrajHMF1+NwfARHdVd99imiCzoGWvOK/ExUjgOVGvMoCK0SZSVDrI+MKiwbEcqwzZBJSwNxDlsxNgQGycABRvJN8zSKnBKv5ZEQPCYLKuVQ5RuQ68mo8dTChsJ95qTEAOaEPieEI7MFeutdd9w6+VTvEB1XkGnpsYcfuue83bvDFb4R4ppPPhmMWF4RkaySGW65thY2NsJWMWsCvqHLS+A9ZMn5XIcMax5C8pT6unvfj3KpglyYIlViEgnLAuhoAyqigT8YCK9lVDeSgm4GDDgfoStHey0mLMqUcdIjGp/+1OSmciedLuA1BhTF+4kBWAeXObtugFAqO6KnfKvBaH/qrjtu/0M4TnTcQaalL3/D69//5J59p4Um+jIeXg7sQV85896EzOm27GaBps97Ar/ryRRg0ODAPQDPYUFHeFZYLMqZlRTRGDGANeykkK7SZ9k8Ti1mxrB8GJAZkzzQh8bwrYehfyEvCPPDeaDqkMugypd5SPIDOHIcHkjhyIFJAxfOse6j8+j1Vu+gcZDlADI0TbJ6P8DLwnAgflAQP/yJeZhi5cEjOIOfu+wlL/rf7rnnnsnix2jMbjdN11577enruPjboUZv7XOSLY5OmIys09jAb9Afx9Pka9bx/uIp+WlqsnRYNR0ZHnGy2Ml7spfmgh5l2eJdNK6Uwqtbd7om2lzIufGMG6oeCr/vdcnzYoD8tAaYoJK/Kkt1YVdd1EACnHyHeGo0zMctoW8A/g10cjIO0b++QOs/dawLvZpOiCfT0iOPPHLk7DMv+UucNVeEmr2cx6He1u4D4++wXBdEBnhlvuN86CACV6ni1ch/hSeqRQyAjRpJrLFjb57g8StCxTDcRhEyYiL+ZHSNt+PfFMCkPGyiQUOkMWDp5ZZDfSwf5lnptD5wVMoAGlxwkKcWhyP889I0gGE/STnMLm8SSP/x7NN3/oMPfvCDB+A40wkDmZYef/yLhy+84EXvaWD9xlCzi1O42HVKlc6VxzqKxFN+3F2cG2ywnqYGDuVS/9t3ZvHKYAIK1FjYt49QrdkAlraZSpF1yEgddj9Quf7kyJ7ix4+N7HlKQn5cyQejuqA4h5KBk1V+qgdjeEx48vkAoCJfyxikOdpIlwMTIw4yFiVG+1paTqEd/3jt8Mrfv/329x2CE0AnFGRaeuSRB/ZfdOEF79ggeBUHmpbQX3iSFq7fXykvJpud37hgOgtr6XAkHoY9J3TyrIGNK0zE1wosG8rVw4pcYn9TaB4+T64Ic0CFeyE2XoEJYBU4atOTqmfjggua6yEZIkx1Qq3dhtrTjRtUfDSKmU9TSXvbCJF/hhsr33vPPe9/Gk4QnXCQaenhhx9++sLd57+zgdmV4fbFIjJNETTgYPEUyr2l6SAzIf0A2IgwBOVn4ETeAZrgAbVE+V++WFqmBiSQs5xA5un1n6Ychz6/NkrDS+OydQWTh9ClRf8xhMSbPRdmwDVg4edNBsHHXPsApvPyZOl8BY+Tdkw/qvFe4ryZgtnrM5VPcmf4h7AGP/qxj33wUTiB9IyATEthjebpiy7c/efrhJeGKl+RI9IqtzdXFNtsXlfiqCeiuIfDcTwNquLJGAs43CnDihzON5RfyZO3h5MfEzRW56ERVOfi5TiU3qPBET9K1x4NB6HMQyMyB4CgNg3zPSmsxFtZ4r4UdVPeS4rHCXxZeTRjfnzBkYCzX1+ZNT/00Y/e9iScYHrGQKal4NEcuvD8c/96A2bXhOq/NIWX7zjlgLqQMSscYR0dOXBaFgKY1KlJDTZ1YILhWdEgsQc6B6ZfVKlx2l4eWwynyrXNZyCCCfAARHpljrwJBj7E7wJBGuXF9ImXJd4TuPZbvU/8lTGxll4lnw7ewnFFKwsRnMOwv3X26dv/4S233HIYngF6RkGmpXbXaftlL/vDLUfWDoXafzmwA3ul37Gs1/AFT2HZHknDpkmcfkT3M8FLQpVI+xWojCfHYFWKDB3J3yVWBznNwMH8NFH+LQKrB9cmEulCunHgAguN8Fue4akOBxbDOwHY3PsaQmCtjHVZPjmjlHAzEfgZGCETMXgt+L+effqOn373u9+9Cs8QPeMg09Le++5bf/SRhz5wzvkXPhEQ5nUhaEuK6w0Li3fgTqM8qX7vTjFMHAngxu6MFX6yKuDovDwQGPe2Uu5DpJY1yujNbvnT3bwc1pjYugmU0X5qi5c8rMdCm/BUajxowmJ+jseSykFMx6ast9TCi4dkw2vYsykirYyyPT33NOjeY2E4/5GzT9v+GwFg1uEZpCk2eELpiutueNuM4JehXRBOz1Mkr0ZvbxPrrjlLPpXd9Bsxr0h4CEOeDbvHMZ707rryNLWXDvW1GL2G61ePS3kZJPJvubU4bdEbGdlGpJKAHMFDRkhgIyZ5OCTLQKrwm/FaamFduFOJeUBlLgASb13sr8VDMOpQYgj/XIOzb/n4Hbd+FJ4FetZBpqXrr3/9xasbR/9LaJrr87SpjeDDSgaZGKm+z8sinBzkxGGMauvMY+sXhfpyIYtE8EqU1F0aObfRcSBDk8bmUcu7DpYwkK/X2rWW10TzxFE9TRVochpdOwsuuQ1GQKwWliLm4vfyh00SmyKVupCUSfgnYaP6hz/2sQ8/AM8SPSvTJU0PP3z/01dc9rLfPHRkdSGAzKtCSy11Ed5isHYrlPudybEerEdVSU+BgKaAjYUBrvM61hmLQKNFHRCwDkQVD2Se+gt5jAjAgcfpRBrlaJ6piZraMKuy4GPbVACSctrG8/a9qyH+TRGh3+h5jTLZQ/+L2ntBeBph9vOXv+yFP/rud//1cX1MYF6aV9dOOF199ave2izQr4QWu5h/1yl5F2IXqo9l18w9x/oYsdkRXAtAf7D004CdReRbVRgJOsUKdXrn5Z5QycIl1K7IFHKQhW3SSB4FIPUe8ZPyMHnBC6xO4YKdGpmkA1OaUU9roCInznvBgsoo7SGvJUmU/izi7HvuvuPWW+AkoJPCk+H06KMPfeq8cy74Y5zBuaHNXhaAZhHZMXKzTtOS1akRo8FjHsm9yKnTKeHZeOEsVc1PGSoPjlRuUMlZpMKJKqvAHZzTo5kSbsBFP07qna0BGT4yJaoOOsz7qzONg9N0YMFKgjT0ACBKTyaXDeBogJ//QKtLN3/87g99Gk4SmtfWnknCV7zyVd+MDf1SKOWlncKkt3bphWFOfN1makbTWSW+OU5U9+N4JpPyZlaNY7wV1R2cOo14Lb5nJPNwqlwlWzKayFv4iSoNXUlHdYHDgOYACI1MibzWGuIfJpTzP2SFEOuRKNZdWN9+omnwJz9+161/Ct4H6J9FOplBpqObbrppy5N7D/5aULfvBv6dKJSr6SlM3jNB5pszko6bZ8MBwlFcHJCXp0gjYGPT2BicoNoJrJOsQiRyODaK7ry3iO9YKYl8Uw19meCUeMxjqYazKtNAlX1oH+avE5OUwFS0DYJ+gFif3sX2+SPCX9yxbfGfP1OH6+alkx5kIs2uvOGGG3Ad/kW4fgPoA3ztDQea1EnCVjyQqavLXN7NWPyE6YsXRrW4ueTVpCRzVpbOgRqlsXM2mZlu7CKSr48U6NMghjxJhSgXy+RjuGB6XJoOEWhsG043kAe66aZAkwUVPmAKnAY4GOLfN2vof/noR2+7A05ieq6ATEdXXnnTDlw8+E04ox8PDX51GybOeNRGSwLfYEbouHk3Oh5H4sfSd5SUcBx0QKWbviLlAdQEQ5ksa1pPjHkWg2mHZA6pwgCujuczRXD8zboJjr6mYJLFQfwgNPiLK4sbf3n77bevwUlOzymQSXTjjTfuOrhK3xXWZH4yjJQvbMOw6mZCcnWYhPmAxjeP4TRQSYdjDBVZc8fN2bNiZglT6jvOVW3hgYemqOoK+BPD0XxVMckwjKSfSPOlUVrlrLvoNZh4eVdDs1/etXXh90/WqZFHz0mQSXT11Vef28DSd+LC7KfD7fm1tRnpyMzv0QAcG9hM4pvAPAY4g+XDcRmW9ByChyvBo6IKsHi2NFSCSeJrAVIVRmXMoxXT+JVLhH5i79WYpWXx3qahX9yyRH8WPJcn4DlGz2mQSRTAZjssLH99GOn+YeieVyN7FkqSmmibgyLzj0fz0rFOqeaVN8wzBpvMGxxZ2+kzwhHLszLm9RpoIoPLdwxrLU4WE0jpF/e0o6R8GorU98lmuD/8/m1g+PW773xR2DH6gw14jtLzAmQShZ2oxcf3HnxF6KuwE0VvDh30shC8gPkkn0qQjaI2xDhayVoM/eBJNJkfT4z3pNOogX8iWU9Hy6HRtOMxE/HquHlFbtqR3UnbilxvsOhYbjI2HYJ8vx7uPxWifxdmi//5rJ0rn3mmH2Y8EfS8AhlGs2uuuWZ3g1uuIdr4utBxXxW68or6zgmn7L9KpRpVsp5OhHejGTfbaSdrZ29qDWRgLDhW2ZtKa1SJLwRRPx3y3k6HuEENfTRwvAsW6N3NkZUP3HPPLXvgeUTPV5DJ9Pa3v332+3/5l6fj2trlsw1st7+/Mrimrw0V395zRA01LcEXDJI7MX2xeF6qQZ5hSlQGwhJE7H4T7tXxVAbtG+p8hhZnvcRTpj86+Qj+DKaDqTL4tDuXO91H7y6rT+60Q2G8emeD8NcLDb1vZWV2/623fmgPnGSH6I4XPe9BxqMXvODLtp555urVNJtdE1rgtSHoVUEDzgl6cXq4XrKPLSTlgE3RsTayVvbq9G8gPcdMPF69vgkgE8lVs062sFghffL1xK+xAEgAIbBHwJPOdJdHQhkPhLgHQ8BtYcr1oQAqt5x55o5PPh+mQVPpSxJkLN28cNVVn3tpg7OX4owuC+PJS4LOnB9UeHdooXOCgpwRlOa0Y20tAxabSMvvj6kQOpgPxrVZpcI17jWZdDEv8twDgLks23N05qVau0+S5XYWdyFhf6j7k6Gu7ZvnvhgCPh9iPx0cky/OaPGuO+/8uvuDT93AlyidApk64UtecuPOLactnAPN+hlhtf9MWN84b4Z4XgN4blCk3TCjM5BCONHpoSVbIDoj/K7MlQkcP3q+dKaHR8fqqUz2eBighFWUw+F+T7jYG9ZMng6eyJ4Q9XhgejzEPd4QPLIxo0eWZrRnA7Y+sQUOPxG2mE/It4uey3QKZDZNhFde+e1LCwv3Lm0JFNzipcOHYWk2o2202OwAWtgeHPrTmwa3hrAdYZTbEhp7W1gA3IpIK8FL2hbCdoQRcDEsCO4I3vdiUOgdQXC4D9eIO7pcgGZBoXepvHs+cAfZWQjbNVTyaZ1+LGY9nWrrNeF370Ca9ntB+1nIRmjPA5jEIR0IbbseGq59j+2hcN3FQ39/MLTpwTA4rM6gORjiDm/gwoEFwFVa2NgHRzcObswW9i2HsPX15sjWrbAWpqdrBw8ePApwxerHP/77a8/XtZMTRf8vr+LUaz02nE0AAAAASUVORK5CYII=";
4
+ //#endregion
5
+ export { hotWalletIcon, meteorWalletIcon };
6
+
7
+ //# sourceMappingURL=externalWalletBrandImages.js.map
@@ -3,6 +3,7 @@ import { isWalletSessionReadyForUi } from "./walletSessionReadiness.js";
3
3
  //#region src/react/context/reactLoginStateBuilders.ts
4
4
  function linkedDeviceManagementPermissionForLoginState(state) {
5
5
  if (!state.isLoggedIn) return { kind: "unauthenticated" };
6
+ if (state.access === "external") return { kind: "settings_only" };
6
7
  if (state.currentAuthMethod.kind !== "selected") return { kind: "signing_only" };
7
8
  return { kind: "owner" };
8
9
  }
@@ -24,6 +25,11 @@ function accountMenuCapabilitiesForLoginState(state) {
24
25
  canExportKeys: false,
25
26
  canManageLinkedDevices: false
26
27
  };
28
+ case "settings_only": return {
29
+ kind: "settings_only",
30
+ canExportKeys: false,
31
+ canManageLinkedDevices: false
32
+ };
27
33
  }
28
34
  return assertNeverAccountMenuPermission(management);
29
35
  }
@@ -47,8 +53,21 @@ function buildReactLoggedInLoginStateFromSession(session) {
47
53
  if (session.appIdentity.kind !== "resolved") return null;
48
54
  const appIdentity = session.appIdentity;
49
55
  const authentication = session.authentication;
56
+ if (session.externalSettings) return {
57
+ isLoggedIn: true,
58
+ access: "external",
59
+ externalSettings: session.externalSettings,
60
+ walletId: String(appIdentity.walletId),
61
+ nearAccountId: appIdentity.nearAccountId ? String(appIdentity.nearAccountId) : null,
62
+ nearPublicKey: appIdentity.nearOperationalPublicKey,
63
+ currentAuthMethod: buildNoCurrentWalletAuthMethod(),
64
+ authMethods: [],
65
+ thresholdEcdsaEthereumAddress: appIdentity.thresholdEcdsaEthereumAddress,
66
+ thresholdEcdsaPublicKeyB64u: appIdentity.thresholdEcdsaPublicKeyB64u
67
+ };
50
68
  if (authentication.kind === "authenticated" && session.appIdentity.authMethods.length === 0) return {
51
69
  isLoggedIn: true,
70
+ access: "wallet",
52
71
  walletId: String(appIdentity.walletId),
53
72
  nearAccountId: appIdentity.nearAccountId ? String(appIdentity.nearAccountId) : null,
54
73
  nearPublicKey: appIdentity.nearOperationalPublicKey,
@@ -63,6 +82,7 @@ function buildReactLoggedInLoginStateFromSession(session) {
63
82
  const currentAuthMethod = buildSelectedCurrentWalletAuthMethod({ binding: matchingAuthMethods[0] });
64
83
  return {
65
84
  isLoggedIn: true,
85
+ access: "wallet",
66
86
  walletId: String(appIdentity.walletId),
67
87
  nearAccountId: appIdentity.nearAccountId ? String(appIdentity.nearAccountId) : null,
68
88
  nearPublicKey: appIdentity.nearOperationalPublicKey,
@@ -1,5 +1,6 @@
1
1
  import { nearWalletName } from "../externalNear/wallets.js";
2
2
  import { Theme, useTheme } from "./components/theme/ThemeProvider.js";
3
+ import { ExternalNearWalletIcon } from "./components/ExternalNearWalletIcon.js";
3
4
  import { Component, useSyncExternalStore } from "react";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
6
  import "./externalWalletPicker.css";
@@ -82,11 +83,6 @@ var NearWalletPicker = class extends Component {
82
83
  });
83
84
  }
84
85
  };
85
- const walletIcons = {
86
- meteor: "M",
87
- hot: "🔥",
88
- intear: "I"
89
- };
90
86
  function NearWalletButton({ wallet, network, busy, onConnect }) {
91
87
  const unavailable = wallet === "hot" && network !== "mainnet";
92
88
  let description = "Browser extension";
@@ -100,7 +96,7 @@ function NearWalletButton({ wallet, network, busy, onConnect }) {
100
96
  /* @__PURE__ */ jsx("span", {
101
97
  className: `seams-near-icon seams-near-${wallet}`,
102
98
  "aria-hidden": "true",
103
- children: walletIcons[wallet]
99
+ children: /* @__PURE__ */ jsx(ExternalNearWalletIcon, { wallet })
104
100
  }),
105
101
  /* @__PURE__ */ jsx("strong", { children: nearWalletName(wallet) }),
106
102
  /* @__PURE__ */ jsx("small", { children: description })